Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отправка сообщения с сайта на почту

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Проблемы с кодировкой при отправке сообщения из формы на почту
alexAll
Отправлено: 03 Февраля, 2015 - 10:41:14
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Здравствуйте. При отправки сообщения из форму на почтовый ящик, приходят разные иероглифы и непонятные символы. Что нужно исправить в данном коде чтобы на почту приходили русские буквы? Спасибо за помощь

Обработчик формы
<?php
session_start();
if($_POST['session_id'] != session_id() )
{
exit("Отправкой сообщений можно пользоваться
только на сайте ".$_SERVER['HTTP_HOST'].".");
}
else
{
$message_text = htmlspecialchars(trim($_POST['message_text']));
$name = htmlspecialchars(trim($_POST['name']));

$len = 200;
if(strlen($message_text) > $len)
{
exit("Ошибка. Сообщение не должно превышать ".$len. " знаков. ");
}

$to = "example@mail.ru";
$subject="Письмо от ".$name;

// конвертируем из windows-1251 в koi8-r
$subject = convert_cyr_string($subject,'w','k');

// это само письмо
$message ="<html>
<head></head>
<body>
Письмо отправлено - <font color='red'>".date("d.m.Y H:i:s"). "</font><br>
<h3>Текст письма:</h3>". $message_text."
</body>
</html>
";
// конвертируем из windows-1251 в koi8-r
$message = convert_cyr_string($message,'w','k');
// заголовки письма
$headers = "Content-Type: text/html; charset=KOI8-R\r\n";
// от кого письмо
$headers .= "From: server <LPHP.RU>\r\n\r\n";
if(mail($to,$subject,$message,$headers))
{
echo "Письмо успешно отправлено.";
}
else
{
echo "Ошибка. Письмо не отправлено.";
}
}
?>

(Отредактировано автором: 03 Февраля, 2015 - 10:41:47)

 
 Top
RickMan
Отправлено: 03 Февраля, 2015 - 10:46:59
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




1) на форуме тут, когда выкладываете код, оформляйте его нормально, а не wall of code.
2) http://www.php.su/mb_detect_encoding%28%29 - функция для определения кодировки строки (Скорее всего у вас CP1251)
3) http://www.php.su/functions/?iconv - функция для смены кодировки (Вам надо с UTF-8)
 
 Top
alexAll
Отправлено: 03 Февраля, 2015 - 13:10:18
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




А как оформлять код на форуме, я просто впервые тут?
 
 Top
RickMan
Отправлено: 03 Февраля, 2015 - 13:16:42
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




alexAll пишет:
А как оформлять код на форуме, я просто впервые тут?
Над окном ввода сообщения есть кнопки: жирный шрифт, курсивныый, подчеркнутый, ну и так далее, и там же есть кнопки Code, PHP, HTML, SQL и так далее. Выделите код и нажмите на кнопку HTML и будет и вам и нам счастье.

(Отредактировано автором: 03 Февраля, 2015 - 13:17:17)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB