О записи
Реклама


Полезные ссылки

Ajax и кодировка запросов

Буржуй ваш - таблетки наши. Конверт просто улётный! GlavMed.com

Неотъемлемая часть Web2.0 проекта использование интерактивного интерфейса, реализацию который приобрел лице Ajax. Я уже немного касался этой темы и сейчас, когда вплотную поставил себя в условия изучения этой технологии обнаружил, что как и любая технология она имеет свои подвохи.

AJAX (от англ. Asynchronous JavaScript and XML — «асинхронный JavaScript и XML») — это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения могут быть сделаны более быстрыми и удобными.

Ajax, php,  кодровка

Описывать основы работы Ajax с PHP я не стану, поскольку об этом есть много статей и общеступной информации. Все и так могут скачать Ajax скрипты и изучить работу основного компонета XMLHttpRequest.

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

  1. Браузер IE, заполняется форма, через Ajax отправляется в скрипт PHP, где происходит insert в базу. В результате в базе текст в номальной кодировке.
  2. Браузер IE, теми же данными заполняется форма, через Ajax отправляется в скрипт PHP, где происходит insert в базу. В результате в базе текст в непонятной кодировке.

Первое, что приходит на ум, проверить кодировку. Недолго серфя по инету находим функцию mb_detect_encoding, но и с ее помощью кодировку не получается определить нормально. В итоге находится функция mb_convert_encoding, которая умеет перекодировать текстовые данные и получаю немного подогнав ответ:

 $encoded_data=mb_convert_encoding($_GET['data'],'Windows-1251','UTF-8');
 $data=(mb_detect_encoding($_GET['data'],"auto",true)=='')?$_GET['data']:$encoded_data;
 $data=trim(strtolower($data));

Только подобные преобразования get запроса от javascript в исполняемом PHP файлике помогают справиться с неправльной кодировкой для обоих браузеров и русский текст инсертится в базу с любой кодировкой... Разбираюсь дальше, а пока.

Maxsite тоже борется с кодировкой :) ну надо же. Притяжение, чтоли опять, или я просто фрик-идеями себе забиваю голову? А вто Zpro до сих пор еще не осознал, что осень - это пора депрессий, а значит даже малейшее несоотвествие реальности своим идеям и желаниям приводит к негативным мыслям или их отсутствию. Осознание проблемы ~ это решение проблемы.

Вот такие javascript штуки мне не очень понятны, но надеюсь скоро освою все в полной мере.
 
Форум вебмастеров

Добавить пост в: Google slashdot YahooMyWeb Digg Technorati Delicious Забобрить эту страницу! Добавить на Newsland.ru Добавить на СМИ2 Добавить на RUmarkz Добавить на Ваау! Добавить на rucity.com Добавить в закладки МоёМесто.ru