Расширение сеанса PHP не учитывает глобальные переменные - PullRequest
3 голосов
/ 11 апреля 2011

В настоящее время я получаю сообщение об ошибке:

Предупреждение: неизвестно: возможно, ваш сценарий использует побочный эффект сеанса, существовавший до PHP 4.2.3.Обращаем ваше внимание, что расширение сеанса не рассматривает глобальные переменные как источник данных, если не включен параметр register_globals.Вы можете отключить эту функцию и это предупреждение, установив для session.bug_compat_42 или session.bug_compat_warn значение off, соответственно в Unknown в строке 0

Я считаю, что это как-то связано со следующим кодом (когда я начал это замечать):

session_start();                         // Open sessions
$remember_alert = $_SESSION['alert'];   // Remember session alert
session_unset();                         // Unset all data in session
session_destroy();                     // Kill empty session
session_start();                         // Re-open session
$_SESSION['alert'] = $remember_alert;   // Recall session alert

Это код на странице logoff.php создаваемой мной CMS, который используется для очистки всей информации о сеансе, кроме переменной alert.Любая идея будет принята с благодарностью!

1 Ответ

5 голосов
/ 11 апреля 2011

Привет, у меня была такая же проблема, и в моем случай был здесь $ arrFormData и здесь $ _SESSION ['arrFormData'] Дело в том, с тем же именем переменной. В моем если это произошло в массиве $ _GET, но я думаю, это должно быть похоже. Дать это попытка переименования $ arrFormData переменная к чему-то еще, и давайте знать, сработало ли это.

Источник .

Это потому, что где-то у вас есть то же имя переменной, что и ключ вашего $_SESSION global.

Пример

session_start();
$_SESSION['a'] = 1;
$a = 1;

Вы можете отключить ошибку, выключив session.bug_compat_42 в вашем php.ini или используя ini_set().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...