Перейти к публикации

Рекомендованные сообщения

Недавно проявилась проблема:

В админке DLE пропал весь текст на русском языке из новостей.

Смотрите картинку, где есть русские символы, там теперь пустота, в теле новостей аналогично. На фронтэнде не сказалось, все отображается верно. Есть 2 сайта, на движках ДЛЕ 9.2 и 9.5 (9.6) - имеют одинаковые симптомы. В исходном коде страницы все пусто, т.е. русского языка нет. Версии ДЛЕ до 9.2 вообще не завелись.

Кто сталкивался? Случилось после обновления до РНР 5.4.3. Во фронтэнде же все ОК, глючит только админка...

Также выдает постоянно ошибку (при апгрейде БД, при попытке создания резервной копии и т.д.): mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. (8192)

94cd269b551537123e06e1864e0807b2.jpg

Ссылка на сообщение
Поделиться на других сайтах

При этом на сервере PHP должен быть собран как с MySQL расширением, так и с MySQLi расширением.

Использовать линейку PHP 5.4 крайне не рекомендуется, это еще сырая линейка и много багов в самих стандартных функциях PHP.

Также выдает постоянно ошибку (при апгрейде БД, при попытке создания резервной копии и т.д.): mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. (8192)

Откройте файл engine/inc/dumper.php найдите mysql_escape_string замените на mysql_real_escape_string

Ссылка на сообщение
Поделиться на других сайтах

PHP собран с поддержкой MySQL и MySQLi, и MySQLi использую уже больше года. Или в DLE еще где-то надо принудительно прописать использование MySQLi? ибо настроек я не нашел... Как и описания данной проблемы в сети вообще.

С бекапом вопрос решил, спасибо, а вот с пропажей русского языка - пока нет. Вот интересно, если конвертировать в utf8, появится он или нет...

Версия DataLife Engine: 9.6

Тип лицензии скрипта: Лицензия активирована

Режим работы сайта: Включен

Операционная система: Linux 2.6.32-5-686-bigmem

Версия PHP: 5.4.3-1~dotdeb.0

Версия MySQL: 5.1.58-1~dotdeb.1-log MySQLi

Информация о GD: GD Version: bundled (2.0.34 compatible), FreeType Support: Enabled, FreeType Linkage: with freetype, T1Lib Support: Enabled, GIF Read Support: Enabled, GIF Create Support: Enabled, JPEG Support: Enabled, PNG Support: Enabled, WBMP Support: Enabled, XPM Support: Enabled, XBM Support: Enabled, JIS-mapped Japanese Font Support: Disabled,

Module mod_rewrite Включен

Безопасный режим: Выключен

Выделено оперативной памяти: 128M

Отключенные функции: Неопределено

Максимальный размер загружаемого файла: 2 Mb

Размер свободного места на диске: 262.88 Gb

Ссылка на сообщение
Поделиться на других сайтах

а вот с пропажей русского языка - пока нет.

смотрите есть ли он у вас в БД, возможно у вас проблемы в кодировке БД

Ссылка на сообщение
Поделиться на других сайтах

смотрите есть ли он у вас в БД, возможно у вас проблемы в кодировке БД

Текст на месте, во фронтенде все ОК (поэтому я и не рву волосы на голове, посетители тексты видят, будто все как раньше), более того, отправка с помощью софта проходит на ура. Плагины на 9.5 тоже добавляли отлично (сейчас их под 9.6 переписывать буду).

НЕ работает ТОЛЬКО админка... если смотреть исходный код страницы, то там пусто:


// вот тут название должно быть на русском

19.05.2012 - <a title="Редактировать данную новость" class="list" href="/admin.php?mod=editnews&amp;action=editnews&amp;id=46380"></a>

// а тут на английском (видно)

19.05.2012 - <a title="Редактировать данную новость" class="list" href="/admin.php?mod=editnews&amp;action=editnews&amp;id=46381">How to work with AdSense (2012)</a>

Изменено пользователем 1nSane
Ссылка на сообщение
Поделиться на других сайтах

Столкнулся с той же проблемой. Как я понял проблема из-за удаления некоторых функций в PHP 5.4

Не правильно поняли, данные функции не используются при показе новостей в админпанели скрипта.

1nSane,

Давайте доступ по FTP и к админпанели скрипта, нужно визуально смотреть на вашем сервере, в какой функции у вас сбой.

Ссылка на сообщение
Поделиться на других сайтах

Не правильно поняли, данные функции не используются при показе новостей в админпанели скрипта.

1nSane,

Давайте доступ по FTP и к админпанели скрипта, нужно визуально смотреть на вашем сервере, в какой функции у вас сбой.

Спасибо, но я нашел причину, в файле /inc/editnews.php строка 185 (в DLE 9.6)

$title = htmlspecialchars( stripslashes( $title ), ENT_QUOTES );
Вот ее комментирование возвращает русский язык, буду дальше копать ;) Да, теперь нужно указывать кодировку:
$title = htmlspecialchars( stripslashes( $title ), ENT_QUOTES, 'cp1251' );[/code]


вот так тоже работает... буду смотреть где еще такие же куски кода...

Еще в /classes/parse.php строка 506 (decodeBBcodes):

[CODE]if (!$this->safe_mode AND $this->edit_mode) $txt = htmlspecialchars( $txt, ENT_QUOTES, 'cp1251' );[/code]

Буду искать дальше...

Ссылка на сообщение
Поделиться на других сайтах

Пока непонятно, является ли это багом со стороны PHP или нет, или теперь обнуление строки запланированное ими действие. Мне нужно связаться с разработчиками и получить от них ответ. Этот параметр присутствует еще с линейки PHP 4.1 и он никогда не обнулял строки, даже для строк в кодировке UTF-8, хотя по умолчанию был в 'ISO-8859-1' В документации по новой линейке нет ни малейшего сообщения о несовместимости http://www.php.net/manual/ru/migration54.incompatible.php при работе данной функции.

Ссылка на сообщение
Поделиться на других сайтах

Это хорошо, вы разбирайтесь ;) Для меня главное, что проблему удалось найти и исправить, теперь надо отловить все упоминания этой функции во всех файлах, для перестраховки. А там либо РНР 5.4.х, либо ДЛЕ 9.7... уверен, кто-то да исправит :)

Ссылка на сообщение
Поделиться на других сайтах

celsoft

Если входная строка string содержит неверную последовательность символов в указанной кодировке charset и флаг ENT_IGNORE (в PHP 5.4 ENT_SUBSTITUTE) не установлен, то htmlspecialchars() вернет пустую строку.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Не правильно поняли, данные функции не используются при показе новостей в админпанели скрипта.

1nSane,

Давайте доступ по FTP и к админпанели скрипта, нужно визуально смотреть на вашем сервере, в какой функции у вас сбой.

Спасибо, но я нашел причину, в файле /inc/editnews.php строка 185 (в DLE 9.6)

$title = htmlspecialchars( stripslashes( $title ), ENT_QUOTES );
Вот ее комментирование возвращает русский язык, буду дальше копать ;) Да, теперь нужно указывать кодировку:
$title = htmlspecialchars( stripslashes( $title ), ENT_QUOTES, 'cp1251' );[/code]


вот так тоже работает... буду смотреть где еще такие же куски кода...



Еще в /classes/parse.php строка 506 (decodeBBcodes):

[code]if (!$this->safe_mode AND $this->edit_mode) $txt = htmlspecialchars( $txt, ENT_QUOTES, 'cp1251' );[/code]
Буду искать дальше... Ну или сразу использовать UTF-8, тогда не нужно вносить изменений с выходом 5.4 UTF-8 в htmlspecialchars теперь по умолчанию. Верно, только не
[code] 'cp1251'[/code]
, а
[CODE] $config['charset'][/code]

Изменено пользователем Elfiel
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...