партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Быстрый заказ (архив)».
Страницы: 1
Ответить
RSS
Проблема с кодировками
 
Добрый день.
Возникла проблема с модулем Быстрый заказ.

В модуле при обработке полученных данных нет проверки кодировки сайта. У нас сайт в кодировке cp-1251, а данные отправляются AJAXом в кодировке UTF-8. Из-за чего модуль создает заказ, в котором русские слова становятся иероглифами.

Могли бы Вы добавить в модуле проверку и при необходимости конвертацию обрабатываемых данных?

Заранее спасибо.
 
Здравствуйте! Вы используете встроенный движок аякс битрикса, т.е. поддержку аякс в компонентах? Потому что в модуле вообще в стандартном варианте никакого аякса нет кастомного.
 
Добрый день.

Мы не используем аякс движок Битрикса. У нас вызов Вашего компонента расположен в отдельном файле.
После заполнения полей формы, она отправляется в ajax запросе (http://jquery.page2page.ru/index.php5/Ajax-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81) на этот отдельный файл(в котором вызов вашего компонента). В описании данного запроса написано: "Стоит отметить, что данные всегда будут передаваться в кодировке UTF-8"

Сайт же находится в кодировке cp-1251. Поэтому при создании заказа Вашим модулем буквы в кириллице ломаются.

Возможно перед созданием заказа нужно добавить проверку и при необходимости конвертацию в нужную кодировку?
 
Денис, вы можете скопировать компонент и вставить конвертацию нужных полей (или еще проще вставить этот код перед вызовом компонента, если он расположен внутри комплексного). Например, вот такой код:
Код

if($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST["submit"] <> '') {

   
$_REQUEST["FASTORDER_NAME"] = $APPLICATION->ConvertCharset($_REQUEST["FASTORDER_NAME"], 'utf-8'LANG_CHARSET);
   
$_REQUEST["FASTORDER_PHONE"] = $APPLICATION->ConvertCharset($_REQUEST["FASTORDER_PHONE"], 'utf-8'LANG_CHARSET);
}

Можете еще сделать проверку по хешу, но тогда вы должны сами сгенерировать хеш и указать его в параметре компонента "HASH". Тогда условие будет такое:
Код

if($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST["submit"] <> ' ' && $_REQUEST["HASH"]==$HASH) {

   ...
}
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки