LINUX.ORG.RU

php mail и русский текст, эпик фейл :/


0

1

Проблема в том, что с формы на скрипт текст приходит в кодировке KOI8-R. А скрипт отправляет на мейл в кодировке utf-8, причем не смотря на явное указание в хейдере KOI8-R, в итоге на мыло приходит жопа на распространенном языке племени майа. Как исправить, преобразовать эту гребаную KOI8-R в utf-8 ?

Код:

<?php
//ПОЛУЧЕНИЕ С ФОРМЫ
//========================================
$get_name = ($_POST['name']);
$get_phone = ($_POST['phone']);
$get_city = ($_POST['city']);
$get_mail = ($_POST['email']);
$get_message = ($_POST['comment']);


//ОТПРАВКА ПИСЬМА
//========================================

//куда отправить
$mail='name@mail.ru';

//сообщение
$message= "Name: ".$get_name."\n"."Phone: ".$get_phone."\n".
"City: ".$get_city."\n"."E-mai: ".$get_mail."\n"."Message: ".$get_message;

//Тема письма
$theme='Сообщение с моего сайта';

//Тело письма
$headers.="From: name@mail.ru\nReply-To: name@mail.ru";
$headers.="Content-type: text/plain; charset=\"KOI8-R\"";

//Преобразование кодировки в utf8
$c_theme = '=?UTF-8?B?'.base64_encode($theme).'?=';

//отправляем
mail($mail,$c_theme,$message,$headers);
echo '<center><h1>Сообщение отправлено.</h1></center>';
?>

<?php
//РЕДИРЕКТ
//========================================
//header('Refresh: 3; URL=http://95.91.174.205/444');
//echo '<center><h1>Сообщение отправлено.</h1></center>';
?>



Последнее исправление: ubuntuman (всего исправлений: 1)

Ответ на: комментарий от anthill

Спасибо бро, все ок теперь.

Код:

<?php
//ПОЛУЧЕНИЕ С ФОРМЫ
//========================================
$get_name = ($_POST['name']);
$get_phone = ($_POST['phone']);
$get_city = ($_POST['city']);
$get_mail = ($_POST['email']);
$get_message = ($_POST['comment']);


//ОТПРАВКА ПИСЬМА
//========================================

//куда отправить
$mail='name@mail.ru';

//сообщение
$message= "Name: ".$get_name."\n"."Phone: ".$get_phone."\n".
"City: ".$get_city."\n"."E-mai: ".$get_mail."\n"."Message: ".$get_message;

//Тема письма
$theme='Сообщение с моего сайта';

//Тело письма
$headers.="From: name@mail.ru\nReply-To: name@mail.ru";
$headers.="Content-type: text/plain; charset=\"KOI8-R\"";

//Преобразование кодировки в utf8
$c_theme = '=?UTF-8?B?'.base64_encode($theme).'?=';
$c_message = iconv ( "utf-8" , "koi8-r" , $message );

//отправляем
mail($mail,$c_theme,$c_message,$headers);
echo '<center><h1>Сообщение отправлено.</h1></center>';
?>

<?php
//РЕДИРЕКТ
//========================================
//header('Refresh: 3; URL=http://95.91.174.205/444');
//echo '<center><h1>Сообщение отправлено.</h1></center>';
?>

ubuntuman
() автор топика

http://php.net/manual/ru/function.mail.php

additional_headers (необязательный)

Строка, которая будет дополнительно вставлена в конец отправляемых заголовков письма.

Обычно используется для добавления дополнительных заголовков (From, Cc, and Bcc). Несколько дополнительных заголовков должны быть разделены CRLF (\r\n).

anonymous
()

откуда, как и кто откопал KOI8-R - вот в чём вопрос. Может вместо дезодорантов для борьбы с ароматами, просто закопать г-но ?

MKuznetsov ★★★★★
()
8 ноября 2012 г.

попробуй UTF8 вместо UTF-8

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.