PHP, CSS, JavaScript, XHTML - есть вопросы?

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

Сообщение sm@rt » Вт авг 22, 2006 2:23 pm

2Piloan Ну что ж ты, камрад :) Заходишь на рамблер какой-нить, делаешь view source и смотришь :)

Код: выделить все
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Красота и массовые расстрелы спасут мир.
sm@rt
Генерал-майор
 
Сообщений: 2935
Зарегистрирован: Вт фев 25, 2003 4:42 pm
Пункты репутации: 0

Сообщение Piloan » Ср авг 23, 2006 6:00 am

Нет, Вы меня не правильно поняли.
Попробую объяснить:
Есть такая часть кода обратной связи:
function SendMail()
{
@mail($GLOBALS["ADMIN"],
$GLOBALS["SUBJECT"],
$GLOBALS["form"]["user"]." написал:\n\n". $GLOBALS["form"]["comments"]."\ne-mail:".$GLOBALS["form"]["email"]);
echo '<CENTER><BR>'.$GLOBALS["form"]["user"].',<BR> на Ваш вопрос мы постараемся<BR> ответить в ближайшее время.<BR><BR>';
"Content-Type: text/html; charset=\"KOI8-R\"\n" ;
}

?>
так вот при получение в почтовой проге приходится менять кодировку на кириллицу(винд) чтоб прочитать сообщение с сайта, хотя по умолчанию в проге стоит тоже KOI8-R

чтобы я не писал в строке "Content-Type: text/html; charset=\"????????\"\n"
все равно приходит с сайта письмо с не правильной кодировкой.
Вот в принципе что я хотел узнать.
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение ita » Ср авг 23, 2006 7:14 am

2Piloan
А ты само сообщение отправляешь в какой кодировке? в win скорее всего.. так что 2 варианта:
или Content-Type: text/html; charset=cp-1251\n , без кавычек помоему
или convert_cyr_string('text','w','k')
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Piloan » Ср авг 23, 2006 6:21 pm

<!--QuoteBegin-ita+Aug 23 2006, 10:14--><div class='quotetop'>QUOTE(ita @ Aug 23 2006, 10:14)</div><div class='quotemain'><!--QuoteEBegin-->А ты само сообщение отправляешь в какой кодировке? в win скорее всего.. так что 2 варианта:
или Content-Type: text/html; charset=cp-1251\n , без кавычек помоему
или convert_cyr_string('text','w','k')
[right][snapback]213357[/snapback][/right]
<!--QuoteEnd--></div><!--QuoteEEnd-->
Сообщение отправляется в KOI8-R, в проге почтовой стоит, что самое интересное тоже KOI8-R, но приходит с другой кодировкой.
Кодировку меняешь на кириллицу(windows) и все становится нормально.
Может это глюки в самой проге??????????
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение SiMM » Ср авг 23, 2006 6:23 pm

<a href='http://phpclub.ru/detail/article/mail' target='_blank'>http://phpclub.ru/detail/article/mail</a>
<a href='http://phpclub.ru/faq/Mail' target='_blank'>http://phpclub.ru/faq/Mail</a>

<span style='color: #999999'>Добавлено([mergetime]1156357420[/mergetime]):</span>
<!--QuoteBegin-Piloan+Aug 23 2006, 22:21--><div class='quotetop'>QUOTE(Piloan @ Aug 23 2006, 22:21)</div><div class='quotemain'><!--QuoteEBegin-->Сообщение отправляется в KOI8-R, в проге почтовой стоит, что самое интересное тоже KOI8-R, но приходит с другой кодировкой.[right][snapback]213379[/snapback][/right]<!--QuoteEnd--></div><!--QuoteEEnd-->Где ж оно в KOI-8R, если контент у тебя на сайте в Windows-1251?
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение Piloan » Сб авг 26, 2006 2:26 pm

<!--QuoteBegin-SiMM+Aug 23 2006, 21:23--><div class='quotetop'>QUOTE(SiMM @ Aug 23 2006, 21:23)</div><div class='quotemain'><!--QuoteEBegin-->Где ж оно в KOI-8R, если контент у тебя на сайте в Windows-1251?
[right][snapback]213380[/snapback][/right]
<!--QuoteEnd--></div><!--QuoteEEnd-->
Да-Да это интересно:
На самом деле в верху стоит:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
а в низу:
"Content-Type: text/html; charset=\"KOI8-R\"\n";
что то какая то не стыковочка, надо проверить.
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение Piloan » Сб авг 26, 2006 2:41 pm

Убрал в низу строчку:
"Content-Type: text/html; charset=\"KOI8-R\"\n";
нуууууууль эмоций
Piloan
Капитан
 
Сообщений: 187
Зарегистрирован: Сб янв 04, 2003 7:16 am
Откуда: Казань
Пункты репутации: 0

Сообщение ukko » Вс окт 01, 2006 3:49 pm

2Piloan,

Постараюсь ответить как я роаботаю из ПХП с почтой..

Код: выделить все
/**
* Функция для отправки почты
*
* @Парметры:    string   $mail_tmpl (Имя файла шаблона)
* @Парметры:    string   $mail_to   (Адресат)
* @Парметры:    string   $extparam  (Массив с дополнительными параметрами)
*
* @Возвращает:  BOOLEAN (true=почта успешно отправлена, false - почта не отправлена)
**/
    function my_mail($mail_tmpl,$mail_to,$extparam)
    {
        include_once("tmpl/mail/" . $mail_tmpl);
        $mail_string_header=
        "MIME-Version: 1.0\r\n".
        "Content-type: text/plain; charset=\"windows-1251\"\r\n".
        "Content-transfer-encoding: 8bit\nDate: " . date('r', time()) . "\r\n".
        "X-MSMail-Priority: Normal\r\n".
        "X-Mailer: PHP v.".phpversion()."\r\n".
        "X-MimeOLE: Produced By ".$GLOBALS['g_url_site']."\r\n";
        $mail_subj   = tema_coding($mail_subj);
        if (mail($mail_to,$mail_subj,$mail_body,$mail_string_header)){
            return true;
        }else{
            return false;
        }
    }

/**
* Функция для кодировки темы (Субжа)
* Спёр эту функцию у WCPS :)
*
* @Парметры:    string   $subject (Имя файла шаблона)
* @Парметры:    string   $chars   (указывается в какую кодировку перевести (koi8-r,koi8-u,iso,windows-1251))
*
* @Возвращает:  string   $subject (Перекодированную тему!)
**/
    function tema_coding($subject,$chars="") {
        if (stristr($chars,"koi8-r")){
            $subject = "=?koi8-r?B?".base64_encode(convert_cyr_string($subject,"w","k"))."?=";
        }elseif(stristr($chars,'koi8-u')){
            $subject= "=?koi8-u?B?".base64_encode(convert_cyr_string($subject,"w","k"))."?=";
        }elseif(stristr($chars,'iso')){
            $subject = "=?iso-8859-5?B?".base64_encode(convert_cyr_string($subject,"w","i"))."?=";
        }else{
            $subject = "=?windows-1251?B?".base64_encode($subject)."?=";
        }
        return $subject;
    }


Вот две функции, которые я использую в своём коде.. Суть функции tema_coding не сразу ясна, если не разгребать специфику формирования заголовка вообще...

Т.е. в заголовке указываются какие-то спец.символы спереди и сзади.. а внутри текст, закодированный в бейс64!

Дальше, если заголовок charset="windows-1251", то ты уж проследи чтоб кодировка письма была именно 1251, а не кои или утф.. Всё.. И ещё! Можно в чём-нибудь модном составить письмо, потом его просмотреть изнутри.. и всё понять :)
<a href='http://foobar2000.ru/forum/' target='_blank'>Новый Оффорум Foobar2000</a>
ukko
Майор
 
Сообщений: 372
Зарегистрирован: Чт фев 17, 2005 11:16 am
Откуда: Россия, Удмуртия, г.Глазов
Пункты репутации: 0

Пред.

Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron