• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. Проблемы с кодировкой при отправке писем.

Форумы Хостинг Проблемы с кодировкой при отправке писем.
textexpress
19.11.2015 15:50
хостинг: нет
домен: нет
Проблемы с кодировкой при отправке писем.
Добрый день.
Прошу помочь решить такой вопрос. Есть html форма для отправки данных с сайта на почтовый сервис. Есть рhp скрипт обработчик данной формы. Данные передаются посредством функции mail(). Когда в поля формы вводятся латинские символы скрипт работает корректно. При вводе кириллицы скрипт возвращает ошибку - "Введите имя". То есть он не видит информации на русском языке. Пробовал по разному решать данную проблему. В html файле и в файле скрипта указывал CP1251, потом utf-8. То же самое проделывал в настройках сайта в панели управления хостингом и в файле конфигурации веб сервера. Также пробовал не привязываться к кодировке нигде. Результат без изменений. Уже не знаю, как решить данный вопрос. Буду благодарен за помощь.
sonicua
19.11.2015 20:30
хостинг: нет
домен: нет
Код скрипта в студию.
textexpress
20.11.2015 19:28
хостинг: нет
домен: нет
Вот сам скрипт:
<?php
$name=htmlspecialchars($_POST["name"], ENT_COMPAT, 'cp1251');
$email=htmlspecialchars($_POST["email"]);
$tema=htmlspecialchars($_POST["tema"], ENT_COMPAT, 'cp1251');
$message=htmlspecialchars($_POST["message"], ENT_COMPAT, 'cp1251');
$myemail="text0@gmail.com";
$name=check_input($_POST["name"],"Введіть ваше ім'я!");
$tema=check_input($_POST["tema"],"Вкажіть тему повідомлення!");
$email=check_input($_POST["email"],"Введіть свою e-mail адресу!");
$message=check_input($_POST["message"],"Вкажіть текст повідомлення!");
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
{
show_error("<br/>Е-mail адреси не існує");
}
$message_to_myemail="Повідомлення з веб сайту.
Ім'я відправника: $name
E-mail: $email
Тема: $tema
Текст повідомлення: $message";
$from="From:$yourname<$email> \r\n Reply-To:$email \r\n";
mail($myemail,$tema,$message_to_myemail,$from);
?>
<p>Ваше повідомлення успішно відправлено!</p>
<p>На <a href="index.html">Головну>>></a></p>
<?php
function check_input($data,$problem="")
{
$data=trim($data);
$data=stripslashes($data);
$data=htmlspecialchars($data);
if($problem && strlen($data)==0)
{
show_error($problem);
}
return$data;
}
function show_error($myError)
{
?>
<p>Будь-ласка виправте слідуючу помилку:</p>
<?php echo $myError; ?>
<?php
exit();
}
?>
sonicua
20.11.2015 23:06
хостинг: нет
домен: нет
Попробуйте изменить
$data=htmlspecialchars($data);
на
$data=htmlspecialchars($data, ENT_COMPAT, 'cp1251');
подобно первым строчкам кода.
textexpress
20.11.2015 23:36
хостинг: нет
домен: нет
Большое спасибо! Все работает отлично)
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города