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

Форум PHP

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

 

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

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

тема: Кодировка в POST
 
 автор: TrEK   (22.02.2011 в 19:56)   письмо автору
 
 

Кодировка страничка utf8 , а вот значения которые отправляются через форму пост в кирилице должны быть в win-1251.
Как сделать это для POST?

  Ответить  
 
 автор: cheops   (22.02.2011 в 20:15)   письмо автору
 
   для: TrEK   (22.02.2011 в 19:56)
 

А какова конечная цель? Работать с обработчиком формы, который расположен на другом сервере? Т.е. нельзя ли перекодировку осуществить уже в обработчике, введя дополнительный параметр с кодировкой - если этот параметр присутствует - перекодируем, если его нет, значит данные поступают в win-1251?

  Ответить  
 
 автор: Trianon   (22.02.2011 в 20:22)   письмо автору
 
   для: TrEK   (22.02.2011 в 19:56)
 

Если кодировка странички - utf-8, то браузеру - при POST-отправке полей формы с этой странички - ничего не останется как передать их именно в кодировке utf-8 . И в никакой другой.
Так что написанное Вами - сплошное противоречие.

  Ответить  
 
 автор: TrEK   (23.02.2011 в 02:09)   письмо автору
 
   для: Trianon   (22.02.2011 в 20:22)
 

В общем, суть такова:

в браузере - <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
дальше идет форма ввода, которая отправляет запрос на имейл.. + отправляет то, что ввожу...
Здесь привел тот скрипт

И мне на почту приходят крокозябры. Какой выход... менять кодировку странички на вин-1251 ?

  Ответить  
 
 автор: Trianon   (23.02.2011 в 02:16)   письмо автору
 
   для: TrEK   (23.02.2011 в 02:09)
 

почему скрипт на utf-8 не поменять?
И кодировку сообветствующую в Content-Type не прописать?
Письма тоже можно в utf-8 отправлять.

  Ответить  
 
 автор: TrEK   (23.02.2011 в 11:42)   письмо автору
 
   для: Trianon   (23.02.2011 в 02:16)
 

Вот здесь не понял.
Просто мне надо чтоб скрипт отправлял данные в вин-1251.
А кодировка пшп-странички (контент тайп) и так задана ютф-8

  Ответить  
 
 автор: Trianon   (23.02.2011 в 12:21)   письмо автору
 
   для: TrEK   (23.02.2011 в 11:42)
 

Чтобы какой скрипт, и куда отправлял?
Вы никакого скрипта в начальном посте не привели.
Сказали, что нужно, чтобы данные отправлялись через форму.
Из формы данные отправляет браузер - на сервер, скрипту. А не скрипт еще куда-то.

  Ответить  
 
 автор: Trianon   (23.02.2011 в 12:26)   письмо автору
 
   для: TrEK   (23.02.2011 в 11:42)
 

Далее. Если речь все же идет не об отправке браузером данных полей из формы скрипту, а об отправке скриптом е-маил-сообщения на почту.
Почему требуется письмо именно в кодировке windows-1251?
Чем не устраивает та, в которой получены данные?
Почтовые клиенты вполне способны прочесть письмо в кодировке UTF-8
При чем на современном этапе это даже более вероятно, чем для кодировки windows-1251.

Преобразование из utf-8 (универсальной кодировки) в 1251 (кодировку семейства кириллических языков) в конце концов когда-нибудь рано или поздно приведет к потере информации.
Почему Вы настаиваете имено на таком подходе - непонятно.

  Ответить  
 
 автор: TrEK   (23.02.2011 в 17:21)   письмо автору
 
   для: Trianon   (23.02.2011 в 12:26)
 

Да , правильно.
Форма отправки с веб на почту.
Почему я не хочу отправлять с кодировкой utf8 ?
Потому что адресат получает вместо кириллицы - РџР Р?ВЕТ ЄТО РЇ !!!

  Ответить  
 
 автор: Trianon   (23.02.2011 в 17:49)   письмо автору
 
   для: TrEK   (23.02.2011 в 17:21)
 

это потому что в приведенном скрипте у Вас
$headers = "Content-Type: text/html; charset=windows-1251\n";
а не utf-8

а также потому, что $subject не подвергнут MIME-кодированию.

Всё это - не повод ни разу.

  Ответить  
 
 автор: TrEK   (23.02.2011 в 20:18)   письмо автору
 
   для: Trianon   (23.02.2011 в 17:49)
 

Ну да, а вначале странички <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
Тоесть Вы хотите сказать, что если в этих двух местах указать charset=utf8 - тогда у меня перестанут приходить крокозябры?

Ну у меня это получалось лишь в двух случаях...
1. если везде поставить charset=windows-1251, но тогда через mc не удобно редактировать кириллицу, так как она через веб станет крокозяброй,
2. если везде поставить ютф8, и тогда я могу писать в mc кириллией, но отправленные данные приходят крокозяброй. (вернее все формата - п пёп п п )


А как подвергнуть Сабджект ентому самому кодированию?

  Ответить  
 
 автор: Trianon   (23.02.2011 в 22:59)   письмо автору
 
   для: TrEK   (23.02.2011 в 20:18)
 

>> $headers = "Content-Type: text/html; charset=windows-1251\n";
>Ну да, а вначале странички <meta http-equiv="Content-Type" content="text/html; charset=utf8" />

Посмотрите внимательно, какую строку я показал.

И какую показали Вы.

  Ответить  
 
 автор: TrEK   (24.02.2011 в 00:39)   письмо автору
 
   для: Trianon   (23.02.2011 в 22:59)
 

У меня и то и то есть!
Я не понимаю в чем моя ошибка?

  Ответить  
 
 автор: neadekvat   (24.02.2011 в 00:42)   письмо автору
 
   для: TrEK   (24.02.2011 в 00:39)
 

Браузеру важнее не то, что указано в meta-теге, а то, что в заголовке от сервера пришло.

  Ответить  
 
 автор: Trianon   (24.02.2011 в 01:16)   письмо автору
 
   для: neadekvat   (24.02.2011 в 00:42)
 

браузер тут малость не при делах.
кодировку воспринимает почтовый клиент.

  Ответить  
 
 автор: Trianon   (24.02.2011 в 01:15)   письмо автору
 
   для: TrEK   (24.02.2011 в 00:39)
 

в том что сообщение Вы отправляете в однолй кодировке, а в заголовке сообщения указываете совсем другую.

  Ответить  
 
 автор: TrEK   (24.02.2011 в 10:47)   письмо автору
 
   для: Trianon   (24.02.2011 в 01:15)
 

Если в заголовке ютф8 и отправляю ютф8 - я получаю вместо кириллицы буквы ПППП.
Но проблема впринципе решена конвертацией кодировок. (deimand )

  Ответить  
 
 автор: deimand   (22.02.2011 в 20:58)   письмо автору
 
   для: TrEK   (22.02.2011 в 19:56)
 

<?php 
function a($x) { if (is_array($x)) return array_map('a'$x); else return iconv("utf-8""windows-1251"$x); }
$_POST a($_POST);

  Ответить  
 
 автор: Красная_шляпа   (23.02.2011 в 14:40)   письмо автору
 
   для: deimand   (22.02.2011 в 20:58)
 

а какже вложенные структуры и проверка типов?

  Ответить  
 
 автор: TrEK   (23.02.2011 в 16:47)   письмо автору
 
   для: deimand   (22.02.2011 в 20:58)
 

Спасибо, заработало так как и хотел!!

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

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