Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка отправляемого с сайта сообщения
 
 автор: Petter   (15.10.2011 в 13:26)   письмо автору
 
 

Не отображается кириллический текст.
Письмо мне в почту с сайта приходит, но только если оно написано латиницей.
А если я пишу в форме, на сайте, кириллицей, или ещё чем-нибудь, то письмо вообще не приходит.
Если я пишу в тексте письма и латиницей, и ещё чем-то, например, кириллицей, то мне в почту письмо приходит, и в нём только то, что было написано латиницей. Как решить такую проблему ? Кусочек кода прилагаю.


<?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>

  Ответить  
 
 автор: Slo_Nik   (15.10.2011 в 13:46)   письмо автору
 
   для: Petter   (15.10.2011 в 13:26)
 

укажите кодировку письма

<?php 
 $headers 
"Content-Type:text/plain; charset=Ваша_кодировка";
?>

  Ответить  
 
 автор: Petter   (15.10.2011 в 14:20)   письмо автору
 
   для: Slo_Nik   (15.10.2011 в 13:46)
 

Спасибо, Slo_Nik (15.10.2011 в 13:46)
Изменил Заголовок,
$headers = "Content-Type:text/plain; charset=utf-8";

Но это не помогло. Если набираю латиницей - всё ОК, а кириллицей или по-арабски - пусто !

  Ответить  
 
 автор: Slo_Nik   (15.10.2011 в 14:37)   письмо автору
 
   для: Petter   (15.10.2011 в 14:20)
 

У Вас выставлен уровень ошибок через error_reporting(); ?
В какой кодировке сам файл с скриптом ?

  Ответить  
 
 автор: Petter   (15.10.2011 в 14:44)   письмо автору
 
   для: Slo_Nik   (15.10.2011 в 14:37)
 

Сам файл, это видно из META-заголовка, в utf-8.
На сервере тоже она, utf-8 ( мне так сказали сотрудники сервера ).
В файле .htaccess конечно есть строка AddDefaultCharset utf-8 и все файлы, в папке, по умолчанию, в utf-8.

  Ответить  
 
 автор: Slo_Nik   (15.10.2011 в 14:55)   письмо автору
 
   для: Petter   (15.10.2011 в 14:44)
 

>Сам файл, это видно из META-заголовка, в utf-8.
если посмотреть через notepad++, например, то можно увидеть в какой кодировке создан сам файл. Может быть "Кодировать в ANSI", а в meta указана другая кодировка. Вот надо привести к одной кодировке.
error_reporting() есть в начале файла?
поиграйтесь с кодировками в заголовке $headers

  Ответить  
 
 автор: Petter   (15.10.2011 в 15:16)   письмо автору
 
   для: Slo_Nik   (15.10.2011 в 14:55)
 

Да, error_reporting(E_ALL) есть в начале файла, но ошибку не пишет.
Когда распечатываю $letter_body в качестве теста,
<?php echo $letter_body?>

то всё печатается: и то, что кириллицей печатал в форму, и латиницей, и другими буквами. Получается, что из формы в POST всё поступает, а потеря происходит по пути с сервера в почтовый ящик. Я понимаю, что ошибки в PHP нет, так как раньше я писал такой же код, но для другого сервера, и всё работало. Я не очень хорошо понимаю, как происходит передача данных из сервера в почтовый ящик.

  Ответить  
 
 автор: Slo_Nik   (15.10.2011 в 18:12)   письмо автору
 
   для: Petter   (15.10.2011 в 15:16)
 

Протестируйте на другом хостинге

  Ответить  
 
 автор: Petter   (15.10.2011 в 18:31)   письмо автору
 
   для: Slo_Nik   (15.10.2011 в 18:12)
 

Спасибо, Slo_Nik (15.10.2011 в 18:12), а на другом хостинге я уже тестировал, и там всё в порядке ! Но мне нужно на том, где не получается. Может, сделать прикреплённым файлом ?

  Ответить  
 
 автор: Slo_Nik   (15.10.2011 в 19:51)   письмо автору
 
   для: Petter   (15.10.2011 в 18:31)
 

ну раз на одном хостинге работает, то и на другом должен работать... решайте проблему с хостером

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования