Вот еще один скрипт на php, тоже работает но не отправляет кириллицу, может знает кто нибудь
что в нем надо исправить.
}
function complete_mail() {
// $_POST[\'title\'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST[\'title\'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST[\'mess\'], $_POST[\'name\'], $_POST[\'tel\'], $_POST[\'email\'] все аналогично
$_POST[\'title\'] = substr(htmlspecialchars(trim($_POST[\'title\'])), 0, 1000);
$_POST[\'mess\'] = substr(htmlspecialchars(trim($_POST[\'mess\'])), 0, 1000000);
$_POST[\'name\'] = substr(htmlspecialchars(trim($_POST[\'name\'])), 0, 30);
$_POST[\'fam\'] = substr(htmlspecialchars(trim($_POST[\'fam\'])), 0, 30);
$_POST[\'email\'] = substr(htmlspecialchars(trim($_POST[\'email\'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST[\'name\']))
output_err(0);
// если не заполнено поле "Фамилия" - показываем ошибку 1
if (empty($_POST[\'fam\']))
output_err(1);
// если неправильно заполнено поле email - показываем ошибку 2
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i", $_POST[\'email\']))
output_err(2);
// если не заполнено поле "Сообщение" - показываем ошибку 3
if(empty($_POST[\'mess\']))
output_err(3);
// создаем наше сообщение
$mess = \'
Имя отправителя:\'.$_POST[\'name\'].\'
Фамилия отправителя:\'.$_POST[\'fam\'].\'
Контактный email:\'.$_POST[\'email\'].\'
\'.$_POST[\'mess\'];
// $to - кому отправляем
$to = ;
// $from - от кого
$from=\'test@test.ru\';
mail($to, $_POST[\'title\'], $mess, "From:".$from);
$mailheaders = "Content-Type: text/plain; charset=Windows-1251\\n";
$mailheaders .= "From: $email\\n";
echo \'Спасибо! Ваше письмо отправлено.\';
}
function output_err($num)
{
$err[0] = \'ОШИБКА! Не введено имя.\';
$err[1] = \'ОШИБКА! Не введено имя.\';
$err[2] = \'ОШИБКА! Неверно введен e-mail.\';
$err[3] = \'ОШИБКА! Не введено сообщение.\';
echo \'
show_form();
exit();
}
if (!empty($_POST[\'submit\'])) complete_mail();
else show_form();
?>
что в нем надо исправить.
}
function complete_mail() {
// $_POST[\'title\'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST[\'title\'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST[\'mess\'], $_POST[\'name\'], $_POST[\'tel\'], $_POST[\'email\'] все аналогично
$_POST[\'title\'] = substr(htmlspecialchars(trim($_POST[\'title\'])), 0, 1000);
$_POST[\'mess\'] = substr(htmlspecialchars(trim($_POST[\'mess\'])), 0, 1000000);
$_POST[\'name\'] = substr(htmlspecialchars(trim($_POST[\'name\'])), 0, 30);
$_POST[\'fam\'] = substr(htmlspecialchars(trim($_POST[\'fam\'])), 0, 30);
$_POST[\'email\'] = substr(htmlspecialchars(trim($_POST[\'email\'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST[\'name\']))
output_err(0);
// если не заполнено поле "Фамилия" - показываем ошибку 1
if (empty($_POST[\'fam\']))
output_err(1);
// если неправильно заполнено поле email - показываем ошибку 2
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i", $_POST[\'email\']))
output_err(2);
// если не заполнено поле "Сообщение" - показываем ошибку 3
if(empty($_POST[\'mess\']))
output_err(3);
// создаем наше сообщение
$mess = \'
Имя отправителя:\'.$_POST[\'name\'].\'
Фамилия отправителя:\'.$_POST[\'fam\'].\'
Контактный email:\'.$_POST[\'email\'].\'
\'.$_POST[\'mess\'];
// $to - кому отправляем
$to = ;
// $from - от кого
$from=\'test@test.ru\';
mail($to, $_POST[\'title\'], $mess, "From:".$from);
$mailheaders = "Content-Type: text/plain; charset=Windows-1251\\n";
$mailheaders .= "From: $email\\n";
echo \'Спасибо! Ваше письмо отправлено.\';
}
function output_err($num)
{
$err[0] = \'ОШИБКА! Не введено имя.\';
$err[1] = \'ОШИБКА! Не введено имя.\';
$err[2] = \'ОШИБКА! Неверно введен e-mail.\';
$err[3] = \'ОШИБКА! Не введено сообщение.\';
echo \'
\'.$err[$num].\'
\';show_form();
exit();
}
if (!empty($_POST[\'submit\'])) complete_mail();
else show_form();
?>