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]   

> Описание: Не могу никак найти компромис кодировок
nofx
Отправлено: 25 Апреля, 2011 - 01:07:47
Post Id


Новичок


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


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




Нарисовалась проблемка.
По идее все делаю правильно и "всё соблюдено":
1) отправляю со страницы с кодировкой UTF-8:
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8">


2)есть фаил .htaccess в корне c единственной строкой:


3)вот сама функция :
PHP:
скопировать код в буфер обмена
  1.  
  2.  $to = $email;
  3.     $subject = ' Уведомление о регистрации на '.$site.'';
  4.     $message ='
  5.    <html>
  6.     <head></head>
  7.       <body>
  8.       <p>'.$name.', - вы зарегистрировались на нашем сайте <a href=www.'.$site.'/index.php >www.'.$site.'</a> и ввели следующие данные:</p><hr>
  9.      ФАМИЛИЯ: '.$fam.'<br>
  10.      ИМЯ: '.$name.'<br>
  11.      ОТЧЕСТВО: '.$otchestvo.' <br>
  12.      ШКОЛА: '.$nomer_school.' <br>
  13.      РУКОВОДИТЕЛЬ: '.$fam_rukovod.' '.$name_rukovod.' '.$otchestvo_rukovod.' <br>
  14.      E-MAIL: '.$email.' <br><hr>
  15.       </body>
  16.    </html>';
  17.       $headers2 = 'MIME-Version: 1.0\r\n';
  18.       $headers2 .= 'Content-type: text/html; charset=UTF-8\r\n';
  19.       $headers2 .='Content-Transfer-Encoding: base64 \r\n'; //тут также  пробывал -8bit, 7bit, quoted-printable
  20.       $headers2 .= 'From: Администратор <administrator@$SERVER_NAME>\r\n';
  21.     $send = MailSmtp ($to, $subject, $message, $headers2);
  22.     if ($send = TRUE)
  23.     echo "На вашу почту ( ".$email." )отправлено сообщение для подтверждения";
  24.     else echo "Сообщение для подтверждения регистрации не отправлено!";


4) в phpinfo: default_charset = UTF-8 (колонка local value)

5)В MySQL все по русский. перед запросом делаю

В итоге Оутлуком получаю такое письмо:

Тема: Уведомление Рѕ регистрации РЅР° mysite.ru

<html>
<head></head>
<body>
<p>п║п╣я─пЁп╣п╧, - п╡я▀ п╥п╟я─п╣пЁп╦я│я┌я─п╦я─п╬п╡п╟п╩п╦я│я▄ п╫п╟ п╫п╟я┬п╣п╪ я│п╟п╧я┌п╣ <a href=www[dot]mysite[dot]ru/index.php >www.mysite.ru</a> п╦ п╡п╡п╣п╩п╦ я│п╩п╣п╢я┐я▌я┴п╦п╣ п╢п╟п╫п╫я▀п╣:</p><hr>
п╓п░п°п≤п⌡п≤п╞: п║п╨я─я▀п╫п╫п╦п╨<br>
п≤п°п╞: п║п╣я─пЁп╣п╧<br>
п·п╒п╖п∙п║п╒п▓п·: п║п╣я─пЁп╣п╣п╡п╦я┤ <br>
п╗п п·п⌡п░: 1234 <br>
п═пёп п·п▓п·п■п≤п╒п∙п⌡п╛: п║п╦п╢п╬я─п╬п╡ п║п╦п╢п╬я─ п║п╦п╢п╬я─п╬п╡п╦я┤ <br>
E-MAIL: mymail@mail.ru <br><hr>
</body>
</html>

П.С: скопировал тему в NotePad++ и поменял кодировку на UTF-8 и о чудо - получил русский текст! Но с телом сообщения такое не проходит, это вообще не понятно что за кодировка.

И почему, кстати отображаются мои html теги тоже не пойму: ведь в header-е объявлено:
CODE (html):
скопировать код в буфер обмена
  1. Content-type" content="text/html;

(Отредактировано автором: 25 Апреля, 2011 - 01:10:16)

 
 Top
DlTA
Отправлено: 25 Апреля, 2011 - 01:53:45
Post Id



Постоянный участник


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


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




я не силен что и зачем в заголовках
поэтому не совсем понимаю зачем вообще
CODE (htmlphp):
скопировать код в буфер обмена
  1. $headers2 .='Content-Transfer-Encoding: base64 \r\n';

у меня следующее
CODE (htmlphp):
скопировать код в буфер обмена
  1. $header .="FROM: {$email}\n";
  2. $header .= "Content-Type: text/plain; charset=windows-1251\n"; // обратить внимание
  3. $header .= "X-From: {$email}\n";
  4. $header .= "Return-Path:{$email}\n";

и проблем не возникало
 
 Top
nofx
Отправлено: 25 Апреля, 2011 - 11:28:00
Post Id


Новичок


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


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




Да, я тупанул жестко. Заголовки нужно ставить в ДВОЙНЫЕ кавычки как у вас ))
Спасибо Вам, DlTA

(Отредактировано автором: 25 Апреля, 2011 - 11:30:51)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB