<?php
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm ="Заявка";
$Name = $_POST['Name'];
$Birthday = $_POST['Birthday'];
$Profession = $_POST['Profession'];
$Achievements = $_POST['Achievements'];
$Idol = $_POST['Idol'];
$Hobby = $_POST['Hobby'];
$Phone = $_POST['Phone'];
$msg="Им'я : $Name<br><br>
День рождения : $Birthday<br><br>
Профессия : $Profession<br><br>
Достижения : $Achievements<br><br>
Кумир : $Idol <br><br>
Хобби : $Hobby <br><br>
Телефон: $Phone <br><br><br>
* Отправлено с сайта ,,,,,,,.com";
$mail_to = ",,,,,,,,,,,,,,,,,,@mail.ru";
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
echo "<script>window.location.href='http://,,,,,,,,,,,.com/spasibo.html';</script >";
// Вспомогательная функция для отправки почтового сообщения с вложением (Trianon)
function send_mail($mail_to, $thema, $html, $path)
{ if ($path) {
$fp = fopen($path,"rb");
if (!$fp)
{ print "Cannot open file";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
}
$name = $_FILES['mail_file']['name']; // в этой переменной надо сформировать имя файла (без всякого пути)
$EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
$boundary = "--".md5(uniqid(time())); // любая строка, которой не будет ниже в потоке данных.
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: zayavka@,,,,,,,,,,,,,,.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($mail_to, $thema, $multipart, $headers))
{return False; //если не письмо не отправлено
}
else { //// если письмо отправлено
return True;
}
exit;
}
?>
Спустя 10 минут, 33 секунды (28.02.2011 - 22:02) Evilsoul написал(а):
здесь кириллица:
а нужно UTF-8
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";
а нужно UTF-8
$multipart .= "Content-Type: text/html; charset=utf-8";
Спустя 5 минут, 56 секунд (28.02.2011 - 22:08) Новачок написал(а):
Цитата (Evilsoul @ 28.02.2011 - 19:02) |
здесь кириллица:$multipart .= "Content-Type: text/html; charset=windows-1251$EOL"; а нужно UTF-8 $multipart .= "Content-Type: text/html; charset=utf-8"; |
Еще хуже. Не отображаеться даже текст:
Им'я :
День рождения :
Профессия :
Достижения :
Кумир :
Хобби :
Телефон:
* Отправлено с сайта
Спустя 52 секунды (28.02.2011 - 22:09) inpost написал(а):
Новачок
Есть раздел "Кодировки" на форуме, в нём прикреплённая тема, посмотри всё там.
Есть раздел "Кодировки" на форуме, в нём прикреплённая тема, посмотри всё там.
Спустя 1 минута, 56 секунд (28.02.2011 - 22:11) Новачок написал(а):
А еще есть googl и книжка php. Сама не разберусь!!!! Помогите ПЛИЗ.
Спустя 17 минут, 40 секунд (28.02.2011 - 22:28) Evilsoul написал(а):
Сами файлы тоже должны быть в кодировке утф-8 без бум, тебе правильно inpost сказал, там есть описанная проблема.
И ещё как видишь
И ещё как видишь
$multipart .= "Content-Type: text/html; charset=utf-8";я убрал переменную $EOL потому что не знаю что в ней.
Спустя 22 минуты, 11 секунд (28.02.2011 - 22:50) Новачок написал(а):
Цитата (Evilsoul @ 28.02.2011 - 19:28) |
И ещё как видишь $multipart .= "Content-Type: text/html; charset=utf-8";я убрал переменную $EOL потому что не знаю что в ней. |
Evilsoul ти бил прав. Но $EOL нужно било оставить. Короче заменила windows-1251 на utf-8 и всьо пошло. Вы СУПЕР. Спасибо!!!!!!! Тему можно закривать.