1

Тема: После переноса сайта на новый хостинг проблемы с кодировкой в DLE

После переноса рабочего сайта DLE на новый хостинг возникли проблемы с кодировкой - вместо текста кракозябры. Кодировка CP1251. База загружена правильно и настройка кодировки БД на сервере установлена в CP1251.

Выяснилось, что у хостера по умолчанию при создании новой базы принимается кодировка  utf-8 и, если даже мы устанавливаем этот параметр  в CP1251, почему то действует та, что принимается по умолчанию. Чтобы кодировка отображалась правильно достаточно принудительно прописать нужную кодировку в .htaccess . Для этого, в самом начале файла сразу же после строки RewriteEngine On следует добавить строку AddDefaultCharset cp1251

RewriteEngine On
AddDefaultCharset cp1251

Так же после переноса сайта вылезла ошибка:

Strict Standards: Only variables should be passed by reference in........ engine/modules/sitelogin.php on line 309

В строке 309 видим следующий код:

$rssUrl = end(explode('/',$_SERVER["REQUEST_URI"]));

Его надо заменить, например, на следующий:

 $rssUrl_temp = explode('/',$_SERVER["REQUEST_URI"]);
 $rssUrl = end($rssUrl_temp);

PS: В исходном коде результат работы функции explode() передаётся непосредственно как параметр в функцию end(). А функция end() требует для своей работы указатель, а не его значение. Поэтому в исправленном коде мы  сначала переносим значение в переменную $rssUrl_temp, и только после этого передаём в функцию end() указатель на эту переменную.

Поделиться