Вот код формы html:
<form action="php/upload.php" enctype="multipart/form-data" method="post">
<h2 class="send_zay" align="center">Отправить заявку</h2><br>
<input type="text" name="name" placeholder="Ваше имя" class="s_input"><br>
<input type="text" name="phone" placeholder="Ваш телефон" class="s_input"><br>
<input type="text" name="message" placeholder="Ваша заявка" class="big_input s_input"><br>
<div class="file-upload3">
<label>
<input type="file" name="mail_file">
</label>
</div>
<input type="submit" name="submit" value="" class="submitter1">
</form>
Вот код PHP:
php
header('Content-Type: text/html; charset=utf-8');
$thm = "Сообщение с сайта, форма 1.";
$msg = "ИМЯ: ".$_POST['name']."ТЕЛЕФОН: "."\n".$_POST['phone']."\n"."СООБЩЕНИЕ: ".$_POST['message'];
$admin = "fayzrakhman7@gmail.com";
$doc = "";
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $doc = $path;
}
if(empty($doc)) mail($admin, $thm, $msg);
else send_mail($admin, $thm, $msg, $doc);
// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
function send_mail($admin, $thema, $html, $path)
{ if ($path) {
$fp = fopen($path,"rb");
if (!$fp)
{ print "Cannot open file";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
}
$name = "file.ext"; // в этой переменной надо сформировать имя файла (без всякого пути)
$EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
$boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных.
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: address@server.com";
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL; // раздел между заголовками и телом html-части
$multipart .= chunk_split(base64_encode($html));
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";
$multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла
$multipart .= chunk_split(base64_encode($file));
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($admin, $thema, $multipart, $headers))
{return False; //если не письмо не отправлено
}
else { //// если письмо отправлено
return True;
}
exit;
}
?>
Форма не приходит на fayzrakhman7@gmail.com. Почему?
P.S. Форма с файлом.