Модуль Shop-Script Premium >php 5.4

slva2000

Постоялец
Регистрация
26 Ноя 2007
Сообщения
106
Реакции
49
Бывают ситуации, когда выбора особо нет, а хочется, поэтому, приходится использовать старые версии CMS Shop-Script Premium на новой конфигурации сервера.

Проблема в том, что после обновления php до версии 5.4.x перестал корректно работать магазин. Выражалось это в отображении множества русских символов из базы или введённых в формах. Они просто затерались.

Проблема крылась в непредвиденной работе функции htmlspecialchars(); которая без указания дополнительных флагов затирала русские символы.

Пример:
PHP:
echo htmlspecialchars('Привет', ENT_COMPAT, 'cp1251', false); //Привет
echo htmlspecialchars('Привет'); // ничего_не_отобразиться.

Решение: добавить в /core_functions/functions.php:

PHP:
function myhtmlspecialchars($string, $flags = null, $encoding = "cp1251", $double_encode = true) {
   if ($flags === null) { $flags = ENT_COMPAT | ENT_HTML401; }
   return htmlspecialchars($string, $flags, $encoding, $double_encode);
}
и произвести замену всех вхождений:
htmlspecialchars
на
myhtmlspecialchars

Надеюсь с ошибками session_register() и session_unregister() все справятся самостоятельно.
 
Назад
Сверху