Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 17:00   #1
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию Проблема с кодировкой заголовков в функции mail

в письмах почему то не приходят заголовки на русском языке, на английском-приходят

PHP код:
<?php
$mailto 
"benderbej@mail.ru";
$charset "utf-8";
$subject "Обратная связь";
$content "text/plain";
$status " ";

$errors_name 'введите ваше имя';
$errors_mailfrom 'введите свой E-mail';
$errors_incorrect 'заполните правильно Ваш E-mail';
$errors_message 'наберите сообщение';
$send 'ваше письмо отправлено!';

if (isset(
$name) && $name == "")
{
$status "$errors_name";
}
elseif (isset(
$mailfrom) && $mailfrom == "")
{
$status "errors_mailfrom";
}
elseif(isset(
$mailfrom) && !eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$",$mailfrom))
//elseif(isset($mailfrom) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.(
//[a-z])+)+$/",$mailfrom))
{
$status "$errors_incorrect";
unset(
$mailfrom);
}
elseif (isset(
$message) && $message == "")
{
$status "errors_message";
}
elseif (!empty(
$_POST))
{
$subject substr(htmlspecialchars(trim($_POST['subject'])), 01000);
$message =  substr(htmlspecialchars(trim($_POST['message'])), 01000000);
$name substr(htmlspecialchars(trim($_POST['name'])), 030);
$headers "MIME-Version: 1.0\r\n";
$headers .="Content-Type: $content charset=$charset\r\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
$headers .= "From: \"$name\"<$mailfrom>\r\n";
$headers .= "X-Mailer: My Send E-mail\r\n";
mail("$mailto","$subject","$message","$headers");
unset(
$name$mailfrom$mailto$subject$message);
$status "$send";
}
в чем дело?
пробовал менять на
PHP код:
$charset "Windows-1251"
не помогло, прислало крокозябры

Последний раз редактировалось Bendebej; 03.03.2010 в 17:06.
Bendebej вне форума Ответить с цитированием
Старый 03.03.2010, 19:20   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

PHP код:
$subject '=?UTF-8?B?'.base64_encode('Обратная связь').'?='
И эта... Отвыкайте от других кодировок. UTF-8.

P.S. Забыл. Если в From и To тоже есть русские буквы, то их тоже нужно кодировать. В Content-Type: задаётся только кодировка тела, которое может быть отослано в любой кодировке.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 03.03.2010 в 19:23.
Johnatan вне форума Ответить с цитированием
Старый 04.03.2010, 10:50   #3
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
PHP код:
$subject '=?UTF-8?B?'.base64_encode('Обратная связь').'?='
И эта... Отвыкайте от других кодировок. UTF-8.

P.S. Забыл. Если в From и To тоже есть русские буквы, то их тоже нужно кодировать. В Content-Type: задаётся только кодировка тела, которое может быть отослано в любой кодировке.
спасибо, огромное, все заработало!
Bendebej вне форума Ответить с цитированием
Старый 12.03.2010, 11:10   #4
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию

заметил проблему
в BAT
даже при установке $charset="1251"
тело письма отображается неправильно
несмотря на то что по умолчанию там стоит кодировка Windows(Cyrillic)


Данные приходят в бат в той же кодировке, что и страница, (utf-8)
а в бате по умолчанию все письма приходят без кодировки, будто кодировка вообще не была указана

Последний раз редактировалось Bendebej; 12.03.2010 в 11:49.
Bendebej вне форума Ответить с цитированием
Старый 12.03.2010, 12:30   #5
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Отправляйте всё в utf-8. Зачем вам эта 1251?
Почтовые программы не любят "жонглирований" кодировками. Вы проверьте ещё на mail.ru, он тоже не любит такие ситуации.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 12.03.2010, 12:44   #6
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Отправляйте всё в utf-8. Зачем вам эта 1251?
Почтовые программы не любят "жонглирований" кодировками. Вы проверьте ещё на mail.ru, он тоже не любит такие ситуации.
у меня bat чего то не видит в какой кодировке я ему посылаю, ему все равно
в списке "перекодировка"-"кодировка по умолчанию" на письмах, пришедших с формы стоит "нет"
отправлял и в utf-8 и в windoes-1251
вообще не понимаю в чем дело=(

писал в headers и
charset=utf-8
и
charset=windows-1251
и
переменные пихал
$charset="utf-8";
charset=$charset
и
$charset='=?UTF-8?B?';
charset=$charset
не видит кодировку, хоть ты его убей
а так вообще с других форм видит и windows-1251 и utf-8
Bendebej вне форума Ответить с цитированием
Старый 12.03.2010, 13:14   #7
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Попробуйте использовать библиотеку mb, в php mail() есть ошибки связанные с обработкой utf-8.
http://ru.php.net/manual/en/function.mb-send-mail.php
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 12.03.2010, 13:28   #8
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Попробуйте использовать библиотеку mb, в php mail() есть ошибки связанные с обработкой utf-8.
http://ru.php.net/manual/en/function.mb-send-mail.php
Сработало!!!
Спасибо огромаднейшее!!!!!!
Bendebej вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой motorway PHP 11 02.10.2009 21:32
Проблема с кодировкой GaJIbI4 Помощь студентам 7 05.03.2009 15:42
Проблема с кодировкой... SynonymMixer Общие вопросы Delphi 6 28.01.2009 15:40
Проблема с кодировкой заголовков в TIdMessage шолku Компоненты Delphi 6 06.09.2008 06:43
Проблема с кодировкой и mail.ru! dada PHP 2 08.07.2008 03:08