IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Проверка на сочетание символов (https://www.imho.ws/showthread.php?t=46558)

smap 23.12.2003 00:02

так народ как файл удалять чёто вспомнить не могу? :)
то млин столько мурни пришло в тот католог где все храниться времено :)

Psionic Vision 23.12.2003 00:05

а зачем его удалять?

smap 23.12.2003 00:05

Neo всё пучком.. ща будет )

V0iD 23.12.2003 00:08

unlink(<filepath>);

smap 23.12.2003 00:18

вот оно =)))
2 фала первый php другой html-типо шаблон.

HTML:
PHP код:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
<
title>.:: Связь с Редколлегией ::.</title>
<
meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<
body>

<
form enctype="multipart/form-data" method=post >
  <
table class="form" width="100%" border="0" style="margin-left:0; margin-top: 5; margin-right: 0; margin-bottom: 0;">
    
$errors[to]
    <
tr>
      <
td>Кому</td>
      <
td><select name="to">
          <
option value="0" $selected[1]>Пастух (Главный Редактор)
        <
option value="1" $selected[2]>Neo (Вебмастер)
        <
option value="2" $selected[3]>Багире (Модератор)
        <
option value="3" $selected[4]>Волкодаву (Модератор)
         </
select>
      </
td>
    </
tr>
    
$errors[subject]
    <
tr>
      <
td >Тема</td>
      <
td ><input name="subject" type="text"  size="50" value="$subject"></td>
    </
tr>
    
$errors[from]
    <
tr>
      <
td >Ваш e-mail</td>
      <
td ><input name="from" type="text"  size="50" value="$from"></td>
    </
tr>
    
$errors[file]
    <
tr>
      <
td >Приложение</td>
      <
td ><input name="file" type="file"  size="50"><br>
    <
font size=1 color=red>Допустимые форматы файлов:</font><font size=1jpggifpngdoctxt</font></td>
    </
tr>
    
$errors[text]
    <
tr>
      <
td valign="top" >Сообщение<br><font color=red><br>Пожалуйстаукажите свое имя <br>
в качестве первой строки сообщения.<p style="margin-left:0" align=justify>
Пользуйтесь данной формой только в тех случаяхкогда вам необходимо отправить аттачмент.
В противном случае выберите из следующего меню того
с кем вам нужно связаться:</font><br><br>
<
a href="../../../../contacts/emailred/form.html" target="_self"><u>Пастух (ГлРедактор)</u></a>
<
br><a href="../../../../contacts/emailweb/form.html" target="_self"><u>Neo (Вебмастер)</u></a>
<
br><a href="../../../../contacts/emailbag/form.html" target="_self"><u>Багира (Модератор)</u></a>
<
br><a href="../../../../contacts/emailvol/form.html" target="_self"><u>Волкодав (Модератор)</u></a></font></td>
      <
td rowspan="2" ><textarea name="text" cols="30" rows="15">$text</textarea></td>
    </
tr>
    <
tr>
      <
td valign="bottom" align="center" ></td>
    </
tr>
    <
tr>
      <
td valign="middle" align="center" ><input name="submit" type="submit"  value="  Послать  "></td>
      <
td align=center><font color="#FF0000">Все</fontполя обязятельны!</td>
    </
tr>
  </
table>
<
br>
</
form>
</
html


PHP:
PHP код:

<?php
 $tmp_name 
"neo.html";
 
// Являится ли строка синтаксически
 // правельным адресом электроной почты

 
function check_email($string) {
    
$string trim($string);
    
$ret ereg(
                
'^([a-z0-9_]|\\-|\\.)+'.
                
'@'.
                
'(([a-z0-9_]|\\-)+\\.)+'.
                
'[a-z]{2,4}$',
                
$string);
     return 
$ret;
 }

 
// Это JPG GIF PNG DOC TXT?

 
function check_file($file) {
    
$ret ereg("([a-z0-9_]|\\-)+\\.(jpg|gif|png|doc|txt)$"$file);
    return 
$ret;
 }

 
// Проверяет строку на минимальную и максимальную длину

 
function check_length($string$min_length$max_length) {
    
$str_length strlen($string);
    if(
$str_length $min_length || $str_length $max_length) return false;
    return 
true;
 }

// Проверяем, нажата ли кнопка отправить

function html_error($error) {
 return(
"<tr align=\"Right\"><td colspan=\"2\">$error</font></td></tr>");
 }

// отправлина ли форма?
if(@$submit) {
    
// инцилизация масивов ошибок
    
$errors = array();
  
// так навсякий, а в друг?
  
if(!empty($to)) $errors[to] = html_error("И кому это вы собрались отправлять письмо?");

 
// Проверка "Темы" на длину
 
if(!empty($subject)) {
 if(!
check_length($subject330))
    
$errors[subject] = html_error("Тема должна быть не мене 3-x символов, и не более 30-ти!");
 } else  
$errors[subject] = html_error("Вы не заполнили поле \"Тема\"");
 
// Проверка "Мыла" на ситаксис :)
 
if(!empty($from)) {
 if(!
check_email($from))
    
$errors[from] = html_error("Не правильно введен E-mail, он должен быть вида [email]name@host.zone[/email]!");
 } else  
$errors[from] = html_error("Вы не заполнили поле \"Мыло\"");
  
// Проверка "Текста" на длину
 
if(!empty($text)) {
 if(!
check_length($text,2500)) {
   
$errors[text] = html_error("Тест должен быть не мене 2-x символов, и не более 500-та!");
    }
 } else  
$errors[text] = html_error("Вы не заполнили поле \"Текст\"");
  
// Проверка "Фала" на отрибуты :)
  
if(!empty($file)) {
  if(!
check_file($file_name))
  
$errors[file] = html_error("Допустимые форматы файлов: JPG GIF PNG DOC TXT!");
  }
  else  
$errors[file] = html_error("Вы не заполнили поле \"файл\"");

  
$selected[$to] = "selected";
 
// Проверяем, принит ли файл
 // Можно приступать к обработке данных или в них есть ошибки?
 
if(count($errors) == 0) {

  if(!
file_exists($file)) {
  echo 
"Извените, но по каким то причинам файл не считался попробуйте еще разок :)";
  } else {

 
// приступаем к отправки письма

$content chunk_split(base64_encode(fread(fopen("$file","r"),
           
filesize("$file"))));
$from_mail = array("admin@shabash.dreamsee.ru",
                   
"webmaster@shabash.dreamsee.ru",
                   
"bagira@shabash.dreamsee.ru",
                   
"volkodav@shabash.dreamsee.ru");

function 
sendmsg($to$subject$text$from$file$f_name$type) {
    
$content fread(fopen($file,"r"),filesize($file));
    
$content chunk_split(base64_encode($content));
    
$uid strtoupper(md5(uniqid(time())));
    
$tf="text/txt";
    
$name=$type;
    
$header "From: $from\nReply-To: $from\n".
              
"MIME-Version: 1.0\n".
              
"Content-Type: multipart/mixed; boundary=$uid\n".
              
"--$uid\n".
              
"Content-Type: text/plain\n".
              
"Content-Transfer-Encoding: 8bit\n\n".
              
"$text\n".
              
"--$uid\n".
              
"Content-Type: $tf; name=\"$f_name\"\n".
              
"Content-Transfer-Encoding: base64\n".
              
"Content-Disposition: attachment; filename=\"$f_name\"\n\n".
              
"$content\n".
              
"--$uid--";

  
mail($to$subject""$header);

    return 
true;
}

  
// отправляем письмо :)
 
if(sendmsg($from_mail[$to], $subject$text$from$file$file_name$type)) echo "Сообщение отослано. Спасибо!";
  else echo 
"Извените но произошла ошибка :( <br> попробуйте ещё раз :)";
 }
}
}
// мини мини шаблонизатор :)
$html str_replace('"''\\"', @implode("", ( @file("$tmp_name"))));
eval(
"echo \"$html\";");

?>

Добавлено через 1 минуту:
да ещё если пьсьма не будут доходить...
то постродай с кодом после "// приступаем к отправки письма" =) )

Добавлено через 5 минут:
гы ошибка форума, пишу смайл, а выводит
<img src="images/smilies/smile.gif" border="0" alt="">

проба:
PHP код:

:) 

мля ошибку нашёл ;) исправил =)

CEO 23.12.2003 00:22

smap :Еще не проверил на отсылку, но сразу шоворю : Молодец! Впечатляет.

Psionic Vision 23.12.2003 00:24

Вроде нормально, но никому кроме первого в выпадающем списке не отправляется

А если отправлять на первого в списке то...


Warning: copy(/home/shabash/public_html/files/50.jpg): failed to open stream: No such file or directory in /home/shabash/public_html/contacts/sendmsg.php on line 79

Warning: fopen(/home/shabash/public_html/files/50.jpg): failed to open stream: No such file or directory in /home/shabash/public_html/contacts/sendmsg.php on line 83

Warning: filesize(): Stat failed for /home/shabash/public_html/files/50.jpg (errno=2 - No such file or directory) in /home/shabash/public_html/contacts/sendmsg.php on line 84

Warning: fread(): supplied argument is not a valid stream resource in /home/shabash/public_html/contacts/sendmsg.php on line 84
Сообщение отослано. Спасибо!

smap 23.12.2003 00:26

типо я ошибку там нешл исправил :)

Psionic Vision 23.12.2003 00:27

И ничего никуда не отправляется

Добавлено в ту же минуту:
smap
????

smap 23.12.2003 00:29

да твоим ошибки.. ето типо файл нельзя в директорию залить.. попробуй
@mkdir($DocDir,777);

или просто измени атребуты папки....

Добавлено в ту же минуту:
а ошибку... типо смотри придыдущий топик.. я там поправил =)

Добавлено в ту же минуту:
еще секунду ещё одну ошибку нашёл =))))

Psionic Vision 23.12.2003 00:32

Вот вот. А файл сохраняется в папке - что мне его потом вручную удалять?
И в чем заключаеся та ошибка, я так и не понял

V0iD 23.12.2003 00:33

Блин непонимаю в чем гимор, он сам все отлично заливает, а в $file оставляет путь к temp-файлу, который потом сам удаляется после завершения работы скрипта...

Psionic Vision 23.12.2003 00:33

Папку я создал, те строки исчезли. НО, так ничего и не доходит до ящика

V0iD 23.12.2003 00:35

А на твоем хостинге настроен php на работу mail?

Psionic Vision 23.12.2003 00:36

V0iD
Temp - файл не удаляется а остается в папке. Кроме того ничего вообще не отправляется.

Добавлено через 1 минуту:
V0iD
Да. Предыдущая форма прекрасно работала. и все приходило. Вообще, smap, зачем ты переделывал всю форму? разве не легче было исправить эту?

CEO 23.12.2003 00:49

Neo :Чтоб не появлялись и впредь можно написать такую строчку:
Error_Reporting(E_ALL & ~E_NOTICE);

smap 23.12.2003 00:49

Neo для меня ошибочки, ето паленькие баги :) все подправил ...

да я щика не доходит?
а ты попробуй поэксперементировать с чем я тебе сказал! =)))

V0iD тобишь мона времено вообще файл не хранить?
я имею виду как я в каталог его кида :)

Psionic Vision 23.12.2003 00:50

Кстати насчет HTML - у меня там все основано на шаблонах, так что если хочешь посмотреть, как "муть" выглядит в оригинале, то смотри здесь http://shabash.dreamsee.ru/contacts/sendmsg.php

Добавлено в ту же минуту:
smap
В том то и дело, что я не знаю как эксперементировать. ПОтому что с php я практически не знаком...

smap 23.12.2003 00:51

Neo

ща исправлю всё.... ждёмс =)))))

V0iD 23.12.2003 00:53

Цитата:

Temp - файл не удаляется а остается в папке.
Это сейчас. А когда было как раньше - удалялся...

Добавлено через 1 минуту:
smap
Да, временный сам удалится...

Psionic Vision 23.12.2003 01:00

ладно... жду :)

smap 23.12.2003 01:05

http://imho.ws/showthread.php?s=&pos...180#post367180 =))

пробуй .....

Добавлено через 1 минуту:
не пробуй..... =)))))))) ща ещё кое чё исправлю ...

Psionic Vision 23.12.2003 01:18

Ну, скажешь когда пробовать ОК

Добавлено через 1 минуту:
Класс!

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary=E9AEA20A2F5786D24B2EAEA8E3FE04F5

--E9AEA20A2F5786D24B2EAEA8E3FE04F5

Content-Type: text/plain

Content-Transfer-Encoding: 8bit


112

--E9AEA20A2F5786D24B2EAEA8E3FE04F5

Content-Type: text/txt; name=""

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename=""


R0lGODlhZgB0APcAAAAAAAAACAAICAAIEAgAAAgACAgAEAgAGAgIAAgICAgIEBAAABAACB AAEBAI
...--E9AEA20A2F5786D24B2EAEA8E3FE04F5--

Я таких интересных emailов еще никогда не получал

smap 23.12.2003 01:20

лол =)))))))))))))

хоть отсылаеться ;)

CEO 23.12.2003 01:22

Neo :Можно было бы сообщеньице и подсократить...

V0iD 23.12.2003 01:23

Цитата:

Content-Disposition: attachment; filename=""
Отсутствует файлнейм... Туда подставляется $type, которого в форме вообще нет... Туда надо $file_name...

smap 23.12.2003 01:27

V0iD
уху уже .. увидел )))

Psionic Vision 23.12.2003 01:31

CEO
Чаво??? Я это туда не писал..
:biggrin:

CEO 23.12.2003 01:32

V0iD :Нуда это осталось от старой формы...

smap :А как он вообще отсылает файл, если там написанно
mail($to, $subject, "", $header); -- т.е. на месте файла ""--пустая строка?

smap 23.12.2003 01:34

совершилось ))))

http://imho.ws/showthread.php?s=&pos...180#post367180

пробуем... у меня все работает :)


-------
гы вот мы топик раздули :)

CEO 23.12.2003 01:34

Neo :Я имею в виду здесь:
Content-Disposition: attachment; filename=""
R0lGODlhZgB0APcAAAAAAAAACAAICAAIEAgAAAgACAgAEAgAGA
--E9AEA20A2F5786D24B2EAEA8E3FE04F5--
Я таких интересных emailов еще никогда не получал

Вот так надо было сократить.

Psionic Vision 23.12.2003 01:56

А каким образом форма вообще обрабатывается если в <form.....> нету action?

Добавлено через 1 минуту:
CEO
Уже сократил
smap
Сейчас буду пробовать

CEO 23.12.2003 01:56

Neo :Да! Действительно.

smap 23.12.2003 01:57

Цитата:

А каким образом форма вообще обрабатывается если в <form.....> нету action?
да потумучто по умолчанию тот файл каторый щас ты просматриваешь ))

ты мне скажи скрипт работатет?

V0iD 23.12.2003 01:59

Гы. Я тоже не очень понимаю... Возможно по дефолту action та же страница, на которой форма...

Добавлено через 1 минуту:
Хех. Значит я правильно подумал :)

CEO 23.12.2003 02:03

smap Но ведь ты советуешь страницу html с формой отдельнро от скрипта...

Добавлено через 2 минуты:
И что писать вместо ""

Psionic Vision 23.12.2003 02:03

smap
Ну..
- Когда отсылаешь на первого человека в списке (т.е Пастух), то да отправляется и принимается...
- Когда отправляешь на другого человека с списке то "И кому это вы собрались отправлять письмо"
- Каким образом у тебя работает вот это:
else echo "Извените но произошла ошибка <img src="images/smilies/frown.gif" border="0" alt=""> <br> попробуйте ещё раз <img src="images/smilies/smile.gif" border="0" alt="">";
???
Мне пришлось заменить на
else echo "Извените но произошла ошибка <img src='images/smilies/frown.gif' border='0' alt=''> <br> попробуйте ещё раз <img src='images/smilies/smile.gif' border='0' alt=''>";
Там еще такая строка 72 - то же самое (двойные кавычки на одинарные).

smap 23.12.2003 02:04

CEO тыж етот файл считываешь как шаблон ... тобишь скрипт саму форму и выводит )

Psionic Vision 23.12.2003 02:04

Да, на первого человека все отправляет. Я уже смог открыть почту. Но хорошо бы чтобы можно было отправлять любому человеку из списка - на то и список

smap 23.12.2003 02:05

Neo
ну ты там изменяей, просто яж не так уж тестил ))


Часовой пояс GMT +4, время: 09:33.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.