Ответов: 8 Просмотров: 8808
|
Доброе время суток, я очень долгое время искал, как создать форму отправки изображений и вот на мой взгляд нашёл ( http://php.su/articles/?cat=exam...les&page=060 ), но я столкнулся с проблемой, наверно начну с начала самого...
создал у себя на сервере папку gallery_forma в неё вложил 2ва файла - index.php и simple_mail.php
Файл index.php имеет код таков:
CODE ( htmlphp):
скопировать код в буфер обмена
<HTML> <HEAD> <TITLE>Отправка сообщения с вложением</TITLE> </HEAD> <BODY> <H3> <center><font color=#1E90FF>Отправка сообщения с вложением</font></H3> <center> <table width=1 border=0> <form action=simple_mail.php enctype='multipart/form-data' method=post> <tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr> <tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr> <tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td> <tr><td width=50%>Photo: </td><td align=right><input type=file name=mail_file maxlength=64></td></tr> </tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr> </form> </table> </center> </BODY> </HTML>
Файл simple_mail.php имеет код таков:
CODE ( htmlphp):
скопировать код в буфер обмена
<?php if(empty($_POST['mail_to'])) exit(" ТУТ Я ПИШУ СВОЙ ЭМЕИЛ "); // проверяем правильности заполнения с помощью регулярного выражения if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com"); $picture = ""; // Если поле выбора вложения не пустое - закачиваем его на сервер if (!empty($_FILES['mail_file']['tmp_name'])) { // Закачиваем файл $path = $_FILES['mail_file']['name']; if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path; } $thm = $_POST['mail_subject']; $msg = $_POST['mail_msg']; $mail_to = $_POST['mail_to']; // Отправляем почтовое сообщение if(empty($picture)) mail($mail_to, $thm, $msg); else send_mail($mail_to, $thm, $msg, $picture); // Вспомогательная функция для отправки почтового сообщения с вложением function send_mail($to, $thm, $html, $path) { if (!$fp) { print "Файл $path не может быть прочитан"; } $headers .= "MIME-Version: 1.0\n"; $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; $multipart .= "--$boundary\n"; $kod = 'koi8-r'; // или $kod = 'windows-1251'; $multipart .= "Content-Type: text/html; charset=$kod\n"; $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"; $multipart .= "$html\n\n"; $message_part = "--$boundary\n"; $message_part .= "Content-Type: application/octet-stream\n"; $message_part .= "Content-Transfer-Encoding: base64\n"; $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; $multipart .= $message_part."--$boundary--\n"; if(!mail($to, $thm, $multipart, $headers)) { echo "К сожалению, письмо не отправлено"; } } ?>
то есть всё как в примере.... http://php.su/articles/?cat=exam...les&page=060
и всё, когда я к примеру всё заполняю... мне пишет - Введите адрес в виде somebody@server.com, но а если не чего не заполнять и нажать просто кнопку отправить, то выдаёт мой эмеил на который должна форма отправки отправлять все данные + фото (вот сама форма http://www[dot]freestyle-sk8[dot]com[dot]ua/gallery_forma/ )
Что делать и как быть - я совершенно не знаю... Помогите пожалуйста решить данную проблему
За благовременно спасибо!!!! |