Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка сообщения
 
 автор: Slo_Nik   (25.05.2009 в 13:59)   письмо автору
 
 

Подскажите, пожалуйста, в чём моя ошибка?
Написал форму обратной связи, файл в кодировке utf-8
вот кусок обработчика формы
<?php
$to 
"адрес на который отправляется сообщение";
     
$theme "Сообщение от посетителяя site.com.ua";
     
$message "".$_POST['text']."";
     
$headers "Content-Type: text/plain; charset=utf-8\r\n";
     
$headers .= "From: ".$_POST['name']."<".$_POST['email'].">\r\n\r\n";
?>

проблема в том, что когда сообщение приходит по назначению, мне надо в браузере явно указать кодировку utf-8, тогда письмо нормально отображается.
если кодировку в браузере указать "авто определение", то письмо отображается Подписывайтесь РЅР° РЅ, т.е имя отправителя, тема и само сообщение.
Посмотрел на форуме, вроде всё правильно написал, но не хочет это работать.

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 14:54)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 13:59)
 

Ты так и делаешь?
Если да - то ой как зря ты не обрабатываешь данные и сразу вставляешь в сообщение.
Я отправляю письма так:

<?
        $headers  
"Content-type: text/html; charset=windows-1251 \r\n";
        
$headers .= "От кого: \r\n";
        
$subject "Тема сообщения";
        
$subject '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject"w","k")).'?=';
        
$msg "Тут текст сообщения";
        
mail($email$subject$msg$headers);
?>

И все приходит в хорошей кодировке

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 16:29)   письмо автору
 
   для: neadekvat   (25.05.2009 в 14:54)
 

попробовал сделать так , ни чего не получилось
<?php $to "********";
     
$headers  "Content-type: text/html; charset=windows-1251\r\n";
     
$headers .= "From: ".$_POST['name']."<".$_POST['email'].">\r\n\r\n";
     
$subject "Сообщение с site.com.ua";
     
$subject '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject"w","k")).'?=';
     
$message "".$_POST['text']."";
mail($to,$subject,$message,$headers);
?>

всё осталось по прежнему...
тема сообщения теперь выглядит пўп.п.п.я.п.п.п п. п.я. пїп.я.п.я.п я.п.п я.я.
само сообщение как и было проверка

  Ответить  
 
 автор: VITtek   (25.05.2009 в 16:31)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 16:29)
 

А ты случаем не под Денвером всё делаешь??? Т.к в денвере кодировка 1251.

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 16:33)   письмо автору
 
   для: VITtek   (25.05.2009 в 16:31)
 

нет, отдельно апач стоит, файлы пишу в дримвивере, кодировка у файлов при создании стоит utf8
форму проверял на реальном сервере

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 16:33)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 16:29)
 

А в какой кодировке живете вы и ваш браузер?)

> Т.к в денвере кодировка 1251
В моем скрипте тоже. Пропустил


<?php $to "********"
     
$headers  "Content-type: text/html; charset=utf-8\r\n"
     
$headers .= "From: ".$_POST['name']."<".$_POST['email'].">\r\n\r\n"
     
$subject "Сообщение с site.com.ua"
     
$subject '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject"w","k")).'?='
     
$message $_POST['text']; 
mail($to,$subject,$message,$headers); 
?>

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 16:36)   письмо автору
 
   для: neadekvat   (25.05.2009 в 16:33)
 

"кирилица" - "автоопределение".
пробовал присылать письмо с gmail6 да и с других присылали письма - всё в норме

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 16:37)   письмо автору
 
   для: neadekvat   (25.05.2009 в 16:33)
 

я поменял на utf8 результата не дало

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 16:42)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 16:37)
 

Ну, попробуй удалить строку
 $subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?='; 

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 16:46)   письмо автору
 
   для: neadekvat   (25.05.2009 в 16:42)
 

всё, кроме слов на английском выглядит вот так проверка

  Ответить  
 
 автор: VITtek   (25.05.2009 в 16:48)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 16:46)
 

Попробуй добавить вот это в начале файла (вдруг поможет):

<? php
header
('Content-Type: text/html; charset=utf-8'); 
?>

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 16:50)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 16:46)
 

Вы отправляете сообщения точно из кодировки utf-8?

Ты на utf8 или на utf-8 поменял?

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 17:26)   письмо автору
 
   для: neadekvat   (25.05.2009 в 16:50)
 

имеется ввиду кодировка самого файла?
пробовал и на utf8 и на utf-8 менять

  Ответить  
 
 автор: VITtek   (25.05.2009 в 17:40)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 17:26)
 

$subject = '=?UTF-8?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';

Так пробовали???

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 18:12)   письмо автору
 
   для: VITtek   (25.05.2009 в 17:40)
 

пробовал ни чего не дало

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 17:56)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 17:26)
 

нет, имеется в виду здесь:

$to = "********";  
     $headers  = "Content-type: text/html; charset=utf-8\r\n";  
     $headers .= "From: ".$_POST['name']."<".$_POST['email'].">\r\n\r\n";  
     $subject = "Сообщение с site.com.ua";  
     $message = $_POST['text'];  
mail($to,$subject,$message,$headers);

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 18:24)   письмо автору
 
   для: neadekvat   (25.05.2009 в 17:56)
 

что то ни чего не получается
может не в коде причина, перевожу браузер в кодировку utf-8, почтовик весь отображается крокозяблами, а письмо наоборот нормально отображается

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 19:55)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 18:24)
 

Так у тебя значит браузер не в utf-8 работает, а значити пишешь ты из него не в utf-8, а в другом чем-то, скорее всего в windows-1251, раз уж не в utf-8
Хотя ты вроде пробовал код, который я выше для windows-1251 давал. Ведь пробовал?

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 20:38)   письмо автору
 
   для: neadekvat   (25.05.2009 в 19:55)
 

но ведь сам файл у меня в utf8

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 21:16)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 20:38)
 

Какой именно файл?

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 21:27)   письмо автору
 
   для: neadekvat   (25.05.2009 в 21:16)
 

обработчик формы

  Ответить  
 
 автор: neadekvat   (25.05.2009 в 23:18)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 21:27)
 

Ты форму русскими буквами обрабатываешь?
Скажи мне, в какой кодировке ты отправляешь сообщения, пишешь их
На странице, откуда производиться отправка сообщения, какая кодировка установлена (не файл сохранен, а кодировка в meta прописана)?

  Ответить  
 
 автор: Slo_Nik   (25.05.2009 в 23:33)   письмо автору
 
   для: neadekvat   (25.05.2009 в 23:18)
 

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

  Ответить  
 
 автор: neadekvat   (26.05.2009 в 00:19)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 23:33)
 

И та страница, с которой вы смотрите сообщение, тоже имеет такую кодировку, а так же вы пробовали все, что тут написано, но ничего не помогло
Гильотина поможет

  Ответить  
 
 автор: Trianon   (26.05.2009 в 06:06)   письмо автору
 
   для: Slo_Nik   (25.05.2009 в 21:27)
 

$subject = 'Тема сообщения'; 
$subject = '=?utf-8?B?'.base64_encode($subject).'?=';


Больно на всё это смотреть...

  Ответить  
 
 автор: Slo_Nik   (26.05.2009 в 10:04)   письмо автору
 
   для: Trianon   (26.05.2009 в 06:06)
 

не знаю что за фигня, но отправил на другой адрес(gmail) всё пришло нормально, скрипт при этом не менял, а на предыдущий адрес отправлял - приходит всякая фигня

  Ответить  
 
 автор: 23к44кы   (26.05.2009 в 18:33)
 
   для: Slo_Nik   (26.05.2009 в 10:04)
 

это значит, что гугл исправляет)

[поправлено модератором]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования