Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Проблема с кодировкой

Обсуждение темы Проблема с кодировкой в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Подскажите решение. При кодировке send.php "ANSI" выводится сообщение "Спасибо Юрий, ваше сообщение отправлено!", пришедшее письмо корректно отображает кирилицу что вводилась в форму, а ...


Закрытая тема
 
Опции темы
Старый 05.02.2009, 21:29   #1
Подскажите решение.
При кодировке send.php "ANSI" выводится сообщение "Спасибо Юрий, ваше сообщение отправлено!", пришедшее письмо корректно отображает кирилицу что вводилась в форму, а текст из send.php - знаки вопроса.
Если же send.php "utf8 без бом" сообщение - "Спасибо Юрий, РІР°С?Рµ сообщение отправлено!", письмо полностью отображено кирилицей.
Страница сайта в utf8.
send.php :
PHP код:
<?php
include ("config.php");

$name $_POST['name'];
$email $_POST['email'];
$telephone $_POST['telephone'];
$message $_POST['message'];

$message $name." отправил Вам сообщение.\r\nEmail: ".$email."\r\nТелефон: ".$telephone."\r\nСообщение:\r\n<----BEGINNING OF MESSAGE!---->".
$message."\r\n<----END OF MESSAGE!---->\r\n\n\n";

$eol "\r\n";

  
$headers .= 'From: '.$name.' <'.$email.'>'.$eol;
  
$headers .= 'Reply-To: '.$name.' <'.$email.'>'.$eol;
  
$headers .= 'Return-Path: '.$name.' <'.$email.'>'.$eol;
  
$headers .= "Message-ID: <".time()." TheSystem@".$_SERVER['SERVER_NAME'].">".$eol;
  
$headers .= "X-Mailer: PHP v".phpversion().$eol;
  
$headers .= 'MIME-Version: 1.0'.$eol;
  
$headers .= "Content-Transfer-Encoding: 8bit".$eol;
  
$headers .= "Content-Type: text/plain; charset=UTF-8".$eol;

$msg .= strip_tags(str_replace("<br>""\n"$message)).$eol;
$msg .= "-=User information=- \r\n";
$msg .= "User IP : ".$_SERVER["REMOTE_ADDR"].$eol;
$msg .= "Browser info : ".$_SERVER["HTTP_USER_AGENT"].$eol;
ini_set(sendmail_from$email);  // the INI lines are to force the From Address to be used !
$formsent mail($mailto$messagesubject$msg$headers);
ini_restore(sendmail_from);

if (
$formsent) {
    echo 
"<div id=\"response\">
            <p>Спасибо <b>"
.$name."</b>, ваше сообщение отправлено!</p>
            </div>"
;
    }else{
    echo 
"<div id=\"error\">
            <p>Ошибка при отправке сообщения. Пожалуйста попробуйте еще раз!.</p>
            </div>"
;
    }
?>
 
Старый 05.02.2009, 21:29
Ссылки
Старый 06.02.2009, 04:28   #2
Укажите header('Content-Type'); для самой страницы.
 
Старый 08.02.2009, 14:28   #3
Уточните пожалуйста - я не сильно разбираюсь.
 
Старый 09.02.2009, 13:06   #4
Выводить страницу - как поток форматирующих комманд неправильно. Нужно вывести сначала DOCTYPE, потом шапку с заголовками, а весь контент страницы внутри body
Собственно так:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
Весть саш текст
</body>
Угу, ключевой строчкой является указанная мной <meta.
А точнее раздел charset. Если вы сохраните ваш код в utf8 и напишите в строчке в этой charset=utf-8 - то всё будет ОК. Если же вы используете эту строчку как есть, и сохраните страничку в ANSI, то всё также будет ок. Главное чтоб не было тут одно - там другое
 
Старый 09.02.2009, 13:06
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой в Dreamweaver8 daik514 ASP, Perl, PHP и MySQL 14 24.12.2011 15:35
Проблема с кодировкой iDeViL HTML, CSS, JavaScript 3 26.10.2009 09:47
Проблема с кодировкой odergimiy HTML, CSS, JavaScript 8 10.08.2008 23:38
Проблема с кодировкой perviy HTML, CSS, JavaScript 5 06.04.2004 00:34


Текущее время: 09:41. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум