|
|
|
| Не отображается кириллический текст.
Письмо мне в почту с сайта приходит, но только если оно написано латиницей.
А если я пишу в форме, на сайте, кириллицей, или ещё чем-нибудь, то письмо вообще не приходит.
Если я пишу в тексте письма и латиницей, и ещё чем-то, например, кириллицей, то мне в почту письмо приходит, и в нём только то, что было написано латиницей. Как решить такую проблему ? Кусочек кода прилагаю.
<?php
//......
$letter_body = $_POST["letter_body"];
$letter_body = trim($letter_body);
$letter_body = htmlspecialchars(stripslashes($letter_body));
$subject = "The message from www.mydomain.com";
$toaddress = "myname@yandex.ru";
$headers = "mydomain.com";
if(!empty($_POST["letter_body"]))
{
mail($toaddress, $subject, $letter_body, $headers);
}
//......
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<!--//......//-->
<TEXTAREA name="letter_body" cols="30" rows="50"></TEXTAREA>
<!--//......//-->
</HTML>
|
| |
|
|
|
|
|
|
|
для: Petter
(15.10.2011 в 13:26)
| | укажите кодировку письма
<?php
$headers = "Content-Type:text/plain; charset=Ваша_кодировка";
?>
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(15.10.2011 в 13:46)
| | Спасибо, Slo_Nik (15.10.2011 в 13:46)
Изменил Заголовок,
$headers = "Content-Type:text/plain; charset=utf-8";
Но это не помогло. Если набираю латиницей - всё ОК, а кириллицей или по-арабски - пусто ! | |
|
|
|
|
|
|
|
для: Petter
(15.10.2011 в 14:20)
| | У Вас выставлен уровень ошибок через error_reporting(); ?
В какой кодировке сам файл с скриптом ? | |
|
|
|
|
|
|
|
для: Slo_Nik
(15.10.2011 в 14:37)
| | Сам файл, это видно из META-заголовка, в utf-8.
На сервере тоже она, utf-8 ( мне так сказали сотрудники сервера ).
В файле .htaccess конечно есть строка AddDefaultCharset utf-8 и все файлы, в папке, по умолчанию, в utf-8. | |
|
|
|
|
|
|
|
для: Petter
(15.10.2011 в 14:44)
| | >Сам файл, это видно из META-заголовка, в utf-8.
если посмотреть через notepad++, например, то можно увидеть в какой кодировке создан сам файл. Может быть "Кодировать в ANSI", а в meta указана другая кодировка. Вот надо привести к одной кодировке.
error_reporting() есть в начале файла?
поиграйтесь с кодировками в заголовке $headers | |
|
|
|
|
|
|
|
для: Slo_Nik
(15.10.2011 в 14:55)
| | Да, error_reporting(E_ALL) есть в начале файла, но ошибку не пишет.
Когда распечатываю $letter_body в качестве теста,
<?php echo $letter_body; ?>
|
то всё печатается: и то, что кириллицей печатал в форму, и латиницей, и другими буквами. Получается, что из формы в POST всё поступает, а потеря происходит по пути с сервера в почтовый ящик. Я понимаю, что ошибки в PHP нет, так как раньше я писал такой же код, но для другого сервера, и всё работало. Я не очень хорошо понимаю, как происходит передача данных из сервера в почтовый ящик. | |
|
|
|
|
|
|
|
для: Petter
(15.10.2011 в 15:16)
| | Протестируйте на другом хостинге | |
|
|
|
|
|
|
|
для: Slo_Nik
(15.10.2011 в 18:12)
| | Спасибо, Slo_Nik (15.10.2011 в 18:12), а на другом хостинге я уже тестировал, и там всё в порядке ! Но мне нужно на том, где не получается. Может, сделать прикреплённым файлом ? | |
|
|
|
|
|
|
|
для: Petter
(15.10.2011 в 18:31)
| | ну раз на одном хостинге работает, то и на другом должен работать... решайте проблему с хостером | |
|
|
|