перезд на PHP 5.5

15 views
Skip to first unread message

Beta Protekt

unread,
Aug 24, 2015, 3:49:02 AM8/24/15
to Energine content management framework
Добрый день. при переезде с на версию пшп 5.5 сломался Енержин.

из исправленного на основе сообщений с данной группы
utils.func
было
  $fieldName = preg_replace('/_(\w)/e', 'strtoupper(\'$1\')', $fieldName);
стало
 $fieldName = preg_replace_callback('/_(\w)/', function($m){ return strtoupper($m[1]);}, $fieldName);


ini.func
было
@set_magic_quotes_runtime(1);
/**
 * поскольку magic_quotes_gpc в runtime отключить нельзя, идем на ухищрение
 */
if (get_magic_quotes_gpc()) {
    function recursiveStripslashes($value) {
        $value =
                is_array($value) ? array_map('recursiveStripslashes', $value) : stripslashes($value);
        return $value;
    }

    $_POST = array_map('recursiveStripslashes', $_POST);
    $_GET = array_map('recursiveStripslashes', $_GET);
    $_COOKIE = array_map('recursiveStripslashes', $_COOKIE);
    $_REQUEST = array_map('recursiveStripslashes', $_REQUEST);
}

стало
//@set_magic_quotes_runtime(1);
/**
 * поскольку magic_quotes_gpc в runtime отключить нельзя, идем на ухищрение
 */

    function recursiveStripslashes($value) {
        $value =
                is_array($value) ? array_map('recursiveStripslashes', $value) : stripslashes($value);
        return $value;
    }

    $_POST = array_map('recursiveStripslashes', $_POST);
    $_GET = array_map('recursiveStripslashes', $_GET);
    $_COOKIE = array_map('recursiveStripslashes', $_COOKIE);
    $_REQUEST = array_map('recursiveStripslashes', $_REQUEST);

после чего страницы работают. Но не работает любое всплывающее окно, сравнив разницу нашел различие - в ответ на запрос приходит не json, или точнее не воспринимается броузером как таковой.
Внешне данные не различимы, может только переносами строки

"плохие данные"
{"meta":{"lang_id":{"title":"FIELD_LANG_ID","type":"hidden","key":true,"visible":true,"name":"share_languages[lang_id]","rights":null,"field":"lang_id","sort":0},"lang_name":{"title":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430","type":"string","key":false,"visible":true,"name":"share_languages[lang_name]","rights":null,"field":"lang_name","sort":1},"lang_default":{"title":"\u042f\u0437\u044b\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","type":"boolean","key":false,"visible":true,"name":"share_languages[lang_default]","rights":null,"field":"lang_default","sort":1}},"data":[{"lang_id":"1","lang_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","lang_default":"1"},{"lang_id":"8","lang_name":"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac","lang_default":"0"}],"result":true,"mode":"select","pager":{"current":1,"count":1,"records":"\u0412\u0441\u0435\u0433\u043e: 2"}}

"хорошие данные", броузер воспринимает как json
{"meta":{"lang_id":{"title":"FIELD_LANG_ID","type":"hidden","key":true,"visible":true,"name":"share_languages[lang_id]","rights":null,"field":"lang_id","sort":0},"lang_name":{"title":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430","type":"string","key":false,"visible":true,"name":"share_languages[lang_name]","rights":null,"field":"lang_name","sort":1},"lang_default":{"title":"\u042f\u0437\u044b\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","type":"boolean","key":false,"visible":true,"name":"share_languages[lang_default]","rights":null,"field":"lang_default","sort":1}},"data":[{"lang_id":"1","lang_name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","lang_default":"1"},{"lang_id":"8","lang_name":"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac","lang_default":"0"}],"result":true,"mode":"select","pager":{"current":1,"count":1,"records":"\u0412\u0441\u0435\u0433\u043e: 2"}}


Energine 2.6
заранее спасибо за ответ. Антон.

Pavel Dubenko

unread,
Aug 24, 2015, 4:08:46 AM8/24/15
to Energine content management framework
Нда
давненько это было :))

Эта проблема давно уже решена
Другой вопрос что версия ядра используемая вами ну уж очень древняя, не помню что там было, а чего не было

Вот  - в какую сторону смотреть

PS Лучше всетаки о проблемах писать сюда 

--
Вы получили это сообщение, поскольку подписаны на группу "Energine content management framework".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес energine+u...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес ener...@googlegroups.com.
Чтобы зайти в группу, перейдите по ссылке http://groups.google.com/group/energine.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
Pavel Dubenko, web-developer

Reply all
Reply to author
Forward
0 new messages