За последние 24 часа нас посетили 17564 программиста и 1315 роботов. Сейчас ищут 1722 программиста ...

Форм обратной свзи с прикреплением файла

Тема в разделе "PHP для новичков", создана пользователем Vyacheslav, 4 янв 2010.

  1. Vyacheslav

    Vyacheslav Активный пользователь

    С нами с:
    13 дек 2009
    Сообщения:
    17
    Симпатии:
    0
    Помогите пожалуйста в чем может быть проблема. Сообщение не отправляется с файлом

    PHP:
    1. <?
    2. //Функция проверки переменной
    3. function html_filter($str) {
    4. $result = HTMLSpecialChars($str);
    5. return $result;}
    6.  
    7. //Функция проверки e-mail
    8. function isEmail($email){
    9. if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]+$", $email)){return TRUE;}else{return FALSE;}}
    10.  
    11. //Функция отправки письма с аттачем
    12. $to = ("pravo-v-russia@yandex.ru");
    13. function XMail($from, $to, $subj, $text, $filename, $file)
    14. {
    15. $f = fopen($file,"rb");
    16. $head = "From: $from\n";
    17. $head .= "To: $to\n";
    18. $head .= "Subject: $subj\n";
    19. $head .= "X-Mailer: PHPMail Tool\n";
    20. $head .= "Reply-To: $from\n";
    21. $head .= "Mime-Version: 1.0\n";
    22. $head .= "Content-Type:multipart/mixed;";
    23. $head .= "boundary=\"----------".$un."\"\n\n";
    24. $zag = "------------".$un."\nContent-Type:text/html;\n";
    25. $zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    26. $zag .= "------------".$un."\n";
    27. $zag .= "Content-Type: application/octet-stream;";
    28. $zag .= "name=\"".basename($filename)."\"\n";
    29. $zag .= "Content-Transfer-Encoding:base64\n";
    30. $zag .= "Content-Disposition:attachment;";
    31. $zag .= "filename=\"".basename($filename)."\"\n\n";
    32. $zag .= chunk_split(base64_encode(fread($f,filesize($file) )))."\n";
    33. if (!@mail("$to", "$subj", $zag, $head))
    34. return 0;
    35. else
    36. return 1;
    37. }
    38.  
    39.  
    40. //Получаем данные из формы
    41. if(isset($submit)):
    42. //Проверяем полученные из формы данные
    43. $from = trim(html_filter($from));
    44. $to = trim(html_filter($to));
    45. $subj = trim(html_filter($subj));
    46. $text = trim(html_filter($text));
    47. $text = str_replace("\n", "<br>\n", $text);
    48. $filename = trim(html_filter($file_name));
    49. //Если прикреплен файл
    50. if($filename!="" and $file_size>0):
    51. if(XMail($from, $to, $subj, $text, $filename, $file)==1){header("Location:?send=ok");}
    52. endif;
    53. //Если Не прикреплен файл
    54. if($filename=="" or $file_size==0):
    55. if(EMail($from, $to, $subj, $text)==1){header("Location:?send=ok");}
    56. endif;
    57. endif;
    58. ?>