Переменные PHP-сессии автоматически присваиваются обычным переменным - PullRequest
3 голосов
/ 09 марта 2012

Я хостился на IX веб-хостинге, и я столкнулся с чем-то, что показалось мне странным.Все мои переменные $ _SESSION автоматически присваиваются обычной переменной с тем же именем.Это нормальное поведение PHP?Я посмотрел это в руководстве php.net и не нашел ответа.Вот пример сценария:

<?php
$_SESSION['myvar'] = "hello";
echo $myvar; // after a page refresh, displays hello

$myvar = "goodbye";
echo $_SESSION['myvar']; // displays goodbye
?>

На моем локальном хосте я получаю сообщение об ошибке типа неопределенной переменной: $ myvar, но на IX скрипт работает!Опасное или нормальное поведение PHP?Заранее спасибо.

1 Ответ

3 голосов
/ 09 марта 2012

Эта «функция» управляется директивой php.ini, которая называется register_globals.Он был отключен по умолчанию с PHP 4.2 и полностью удален в PHP 5.4.

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

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