Что-то странно что народ молчит. Не уж то не кто не использует PHP 5.4?
Ну а я вот обновил у себя на сервере PHP и заполучил глюк.
Так как никто мне не смог помочь — пришлось потратить выходные и разбираться самому. Постепенно локализуя проблему, выяснилось что причиной оказался сабж.
Погуглив — мои подозрения подтвердились тут и более простым языком тут.
Сюрпризец от разработчиков PHP
#1
3 сентября 2012 в 00:03
Используемая мной версия InstantCMS — 1.9
Сервер на FreeBSD 9.0
В данной версии CMS нашлось 44 файла где используется данная функция.
Я уж подумал что придется менять во всех, но компьютерный бог был в этот раз на моей стороне и сжалился надо мной и оказалось что поправить нужно всего 4 файла:
admin/applets/components.php (49)
admin/applets/config.php (47,49,50,54)
admin/applets/users.php (182,247) (уже исправлено — 183,248)
includes/bbcode/bbcode.lib.php (921)
admin/components/price/backend.php (уже исправлено — 93)
В скобках — номера строк.
Странно, что в некоторых местах уже имеется "решение" данной проблемы — то есть кодеры более правильно использовали данную функцию.
Ну а там где не хватает третьего аргумента придеться править самостоятельно.
На примере файла — admin/applets/components.php
После данных исправлений моя проблема решилась.
Сервер на FreeBSD 9.0
В данной версии CMS нашлось 44 файла где используется данная функция.
Я уж подумал что придется менять во всех, но компьютерный бог был в этот раз на моей стороне и сжалился надо мной и оказалось что поправить нужно всего 4 файла:
admin/applets/components.php (49)
admin/applets/config.php (47,49,50,54)
admin/applets/users.php (182,247) (уже исправлено — 183,248)
includes/bbcode/bbcode.lib.php (921)
admin/components/price/backend.php (уже исправлено — 93)
В скобках — номера строк.
Странно, что в некоторых местах уже имеется "решение" данной проблемы — то есть кодеры более правильно использовали данную функцию.
Ну а там где не хватает третьего аргумента придеться править самостоятельно.
На примере файла — admin/applets/components.php
$link = htmlspecialchars($_REQUEST['link'], ENT_QUOTES);
$link = htmlspecialchars($_REQUEST['link'], ENT_QUOTES, 'cp1251');
После данных исправлений моя проблема решилась.
Как глобально (например через php.ini и без правки файлов CMS) исправить данную проблему я не нашёл. Да и не раз в интернете натыкался на то, что этого сделать нельзя.
Сегодня в 03:20
#4
3 сентября 2012 в 02:00
вообще ставим более глобально вопрос: какие изменения нам готовит 5.4?
#5
3 сентября 2012 в 16:20
Из неприятностей (ну или из-за моих кривых рук), после установки 5.4 — появились ошибки об заполнения кеша APC и паданием сайтов.
Погуглил — предложили отключить нафиг в Апача в настройках виртуального хоста параметром
Погуглил — предложили отключить нафиг в Апача в настройках виртуального хоста параметром
Теперь полет нормальный.php_flag apc.cache_by_default Off
Рано радовался......
Перестал работать редактор FCKEditor :(
Попробовал поставить CKEditor 3.6 — тоже не работает.
Есть у кого мысли?
Перестал работать редактор FCKEditor :(
Попробовал поставить CKEditor 3.6 — тоже не работает.
Есть у кого мысли?
#7
3 сентября 2012 в 22:34
Все плохо… очень плохо.
htmlspecialchars не работает где бы он не был
То есть для нормальной работы необходимо добавлять 'cp1251' во все места где используется данная функция
Вот такие пироги… с котятами.
htmlspecialchars не работает где бы он не был
То есть для нормальной работы необходимо добавлять 'cp1251' во все места где используется данная функция
Вот такие пироги… с котятами.
htmlspecialchars не работает где бы он не был
Или я не понимаю, о чем Вы, произведите поиск во движку по htmlspecialchars
/components/content/frontend.php
//PAGE HEADING if($cat['id']>0){ $inPage->setTitle($cat['title']); $pagetitle = $cat['title']; $showdate = $cat['showdate']; $showcomm = $cat['showcomm']; $inPage->addHead('<link rel="alternate" type="application/rss+xml" title="'.htmlspecialchars($cat['title']).'" href="'.HOST.'/rss/content/'.$cat['id'].'/feed.rss">');
Вообщем потратил ещё вечерок и подредактировал везде где есть функция htmlspecialchars
Если кому надо — вот список файлов необходимых для изменения
\admin\applets\cats.php
\admin\applets\components.php
\admin\applets\config.php
\admin\applets\content.php
\admin\applets\cron.php
\admin\applets\menu.php
\admin\applets\modules.php
\admin\applets\tree.php
\admin\applets\usergroups.php
\admin\applets\users.php
\admin\components\board\backend.php
\admin\components\catalog\backend.php
\admin\components\clubs\backend.php
\admin\components\faq\backend.php
\admin\components\forms\backend.php
\admin\components\forum\backend.php
\admin\components\photos\backend.php
\admin\components\price\backend.php
\components\blogs\frontend.php
\components\board\frontend.php
\components\board\model.php
\components\content\frontend.php
\components\forms\frontend.php
\components\forum\frontend.php
\components\forum\includes\forumcore.php
\components\rssfeed\frontend.php
\components\users\frontend.php
\components\users\includes\usercore.php
\core\classes\formgen.class.php
\core\classes\page.class.php
\core\classes\user.class.php
\core\cms.php
\includes\bbcode\bbcode.lib.php
\plugins\p_fckeditor\fckeditor\editor\filemanager\connectors\php\basexml.php
\plugins\p_fckeditor\fckeditor\editor\filemanager\connectors\php\util.php
\plugins\p_fckeditor\fckeditor\fckeditor_php4.php
\plugins\p_fckeditor\fckeditor\fckeditor_php5.php
\plugins\p_ping\IXR_Library.php
А в этих файлах хоть и есть данная функция — но редактировать их необходимости нет. Вроде работает и без редактирования их.
\includes\geshi\geshi.php
\includes\geshi\geshi\php.php
\includes\smarty\libs\plugins\modifier.debug_print_var.php
\includes\smarty\libs\plugins\modifier.escape.php
\includes\smarty\libs\plugins\shared.escape_special_chars.php
\includes\smarty\libs\Smarty_Compiler.class.php
Если кому надо — вот список файлов необходимых для изменения
\admin\applets\cats.php
\admin\applets\components.php
\admin\applets\config.php
\admin\applets\content.php
\admin\applets\cron.php
\admin\applets\menu.php
\admin\applets\modules.php
\admin\applets\tree.php
\admin\applets\usergroups.php
\admin\applets\users.php
\admin\components\board\backend.php
\admin\components\catalog\backend.php
\admin\components\clubs\backend.php
\admin\components\faq\backend.php
\admin\components\forms\backend.php
\admin\components\forum\backend.php
\admin\components\photos\backend.php
\admin\components\price\backend.php
\components\blogs\frontend.php
\components\board\frontend.php
\components\board\model.php
\components\content\frontend.php
\components\forms\frontend.php
\components\forum\frontend.php
\components\forum\includes\forumcore.php
\components\rssfeed\frontend.php
\components\users\frontend.php
\components\users\includes\usercore.php
\core\classes\formgen.class.php
\core\classes\page.class.php
\core\classes\user.class.php
\core\cms.php
\includes\bbcode\bbcode.lib.php
\plugins\p_fckeditor\fckeditor\editor\filemanager\connectors\php\basexml.php
\plugins\p_fckeditor\fckeditor\editor\filemanager\connectors\php\util.php
\plugins\p_fckeditor\fckeditor\fckeditor_php4.php
\plugins\p_fckeditor\fckeditor\fckeditor_php5.php
\plugins\p_ping\IXR_Library.php
\includes\geshi\geshi.php
\includes\geshi\geshi\php.php
\includes\smarty\libs\plugins\modifier.debug_print_var.php
\includes\smarty\libs\plugins\modifier.escape.php
\includes\smarty\libs\plugins\shared.escape_special_chars.php
\includes\smarty\libs\Smarty_Compiler.class.php