|
| |
|
|
| |
для: elenaki
(08.02.2007 в 10:46)
| | | elenaki спасибо за оперативный ответ, все работает... | |
| |
|
|
| |
|
|
| |
для: andres
(08.02.2007 в 09:54)
| | | а что не работает? какая ошибка?
я вижу, вы заменяете значение $msg, вместо того, чтобы прикрепить к нему новое поле. надо так:
$msg = $_POST['mail_msg'];
$msg .= $_POST['fio'];
|
точка - знак конкатенации строк. к прежнему значению $msg добавится поле fio. можно еще и название поля и пробел перед значением воткнуть:
$msg = $_POST['mail_msg'];
$msg .= "Ф.И.О. ".$_POST['fio'];
|
| |
| |
|
|
| |
|
|
| |
для: andres
(08.02.2007 в 09:14)
| | | вообще не понял в чем ошибка, почему-то не работает, вот приведу листинг формы и листинг PHP файла, жирным шрифтом выделю то, что я добавил в исходный код, для добавления раздела ФИО:
ФОРМА
<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%>Кому:</td>
<td align=right><input type=text name=mail_to maxlength=32></td>
</tr>
<tr>
<td width=50%>Тема:</td>
<td align=right><input type=text name=mail_subject maxlength=64></td>
</tr>
<tr>
<td width=50%>ФИО:</td>
<td align=right><input type=text name=fio maxlength=32></td>
</tr>
<tr>
<td colspan=2>Сообщение:<br>
<textarea cols=50 rows=8 name=mail_msg></textarea>
</td>
<tr><td width=50%>File:</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>
|
PHP
<?php
if(empty($_POST['mail_to'])) exit("creategames@mail.ru");
// проверяем правильности заполнения с помощью регулярного выражения
if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("creategames@mail.ru");
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['fio'] = htmlspecialchars(stripslashes($_POST['fio']));
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
$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'];
$msg = $_POST['fio'];
$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)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$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; name = \"".$path."\"\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
Что-то не так, а что непойму... | |
| |
|
|
| |
|
|
| |
для: cheops
(07.02.2007 в 13:53)
| | | Спасибо cheops, доступно объяснил нубу в PHP, попробую переделать...
P.S. Мир ни без добрых людей! | |
| |
|
|
| |
|
|
| |
для: andres
(07.02.2007 в 12:56)
| | | А так и добавляйте возмите за пример строку
<tr>
<td width=50%>To:</td>
<td align=right><input type=text name=mail_to maxlength=32></td>
</tr>
|
и исправьте её так
<tr>
<td width=50%>ФИО:</td>
<td align=right><input type=text name=fio maxlength=32></td>
</tr>
|
А в обработчике получайте содержимое поля при помощи $_POST['fio'], при этом $_POST['mail_to'] назначте константное значение
<?php
$_POST['mail_to'] = "somebody@somewhere.ru";
?>
|
| |
| |
|
|
| |
|
|
| | Подскажите как в этой форме обратной связи http://www.softtime.ru/scripts/mailattach.php , добавить дополнительные поля (например Имя, Фамилия) и как убрав поле To сделать чтобы письмо отправлялось на указанный в simple_mail адрес. | |
| |
|
|
|