PHP 5.4 и session_register

Песец, как обычно, подкрался незаметно. Я легко обновил PHP на сервере до версии 5.4 и… конечно обнаружил, что функции session_register(), session_unregister(), session_is_registered() не работают. Просто потому, что вообще больше их нет. Перелопачивать кучу старого кода и срочно его переписывать у меня не было никакого желания. Поэтому приделал костыль в начало каждого скрипта, который использует эти функции. Костыль взял в комментариях на сайте php.net, костыль оказался вполне полезным и рабочим. Во всяком случае все мои скрипты работают, хотя и валят в лог предупреждения.

Автор

Сергей Родовниченко

Родился, учился, работал и все такое. Занимаюсь поддержкой сайтов на Shop-Script, Joomla, Wordpress, Prestashop. А также на самописных движках на базе CakePHP.

PHP 5.4 и session_register: 4 комментария

  1. Спасибо! Помогло и мне. Хотя я закомментировал, где нашел @session_register, всё равно не работало до добавления этой функции.

  2. Сергей, предлагаю принципиальную доработку. У вас переменные в сессии становятся константой, значение которой задается в момент старта сессии. Можно сделать так, чтобы она была глобальной переменной:
    function session_register(){
    $args = func_get_args();
    foreach ($args as $key){
    if (!isset($GLOBALS[$key])) {
    $GLOBALS[$key] = NULL;
    }
    $_SESSION[$key] =& $GLOBALS[$key];
    }
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *