[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не показывает Кирилицу в готовом письме
N-size
Здравствуйте, товарищи!

Имеется форма для отправки письма на HTML

HTML
<HTML>
<meta http-equiv="content-type" content="text/html; charset=Windows-1251">

<FORM action="backform.php" method="POST">

Ваше имя:&nbsp;
<INPUT type="text" name="name">

<br>
Ваш e-mail:
<INPUT type="text" name="email">

<p>
<TEXTAREA name="message" cols="40" rows="5">
Напишите здесь сообщение администратору
</TEXTAREA>

<br>
<INPUT type="submit" name="button_ok" value="OK">

</FORM>

</HTML>


И обработчик на PHP

PHP
//Проверяем, был ли вызван скрипт как обработчик формы
if(isset($_POST['button_ok']))
 {
 
//Куда отправлять письмо
 
$addr="mail@mail.ru";
 
//Тема письма
 
$theme="Отправлено формой";
 
//В теле письма указываем имя отправителя и обратный адрес
 
$text="FROM:".$_POST['name']." (".$_POST['email'].")"."\r\n\r\n".$_POST['message'];
 
//Отправляем письмо
 
mail($addr,$theme,$text);
 echo 
"<p>Ваше сообщение отправлено администратору";
 echo 
"<br><a href=backform.html>Назад</a>";
  }


После работы скрипта, в папку Денвера tmp/!sendmail приходит сообщение, закодированное не Кирилицей:

Кому: mail@mail.ru
Тема: нРОПЮБКЕМН ТНПЛНИ {А должно написать "Отправлено формой"}

Тело письма:
FROM:яЕПЦЕИ (mail@mail.ru) {А должно написать "Сергей"}

оПНБЕПНВМНЕ ЯННАЫЕМХЕ {А должно написать "Проверочное Сообщение"}


В чем прблема?
Заранее благодарен!




Спустя 59 минут, 48 секунд (21.01.2009 - 14:26) jetistyum написал(а):
Вероятно нужно добавлять заголовок кодировки к письму
кажется тут должно быть решение
http://webew.ru/articles/297.webew
учите Google! smile.gif

Спустя 1 час, 13 минут, 47 секунд (21.01.2009 - 15:40) N-size написал(а):
Спасибо! Еще можно сделать так:

(Код переписан. Имена переменных поменял)

PHP
/Проверяембыл ли вызван скрипт как обработчик формы
if(isset($_POST['button_ok']))
 {
 
//Куда отправлять письмо
 
$email_to="mail@mail.ru";
 
//Тема письма
 
$subject="Отправлено формой";
 
//Адрес отправителя
 
$email_from=$_POST['email_from'];
 
//Текст письма
 
$message=$_POST['message'] ."\r\n\r\n С уважением, " .$_POST['name'];
 
 
//Меняем кодировку windows-1251 на koi-8-r
 
$email_to=convert_cyr_string($email_to,"w","k");
 
$email_from=convert_cyr_string($email_from,"w","k");
 
$subject=convert_cyr_string($subject,"w","k");
 
$message=convert_cyr_string($message,"w","k");
 
 
//Отправляем письмо
 
mail($email_to,$subject,$message,"From: $email_from");
 echo 
"<p>Ваше сообщение отправлено администратору";
 echo 
"<br><a href=backform.html>Назад</a>";
 }


Функция
PHP
convert_cyr_string("str","from","to");


str - строка, которая подвергается перекодировке
from - исходная кодировка
to - целевая кодировка

Параметры from и to могут принимать одно из следующих значений:
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic

ТЕМУ МОЖНО ЗАКРЫВАТЬ!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.