Переменная Session PHP изменяется, когда я на нее ссылаюсь - PullRequest
2 голосов
/ 27 октября 2009

когда я сохраняю данные в переменной типа:

 // inside the login page
 $_SESSION['username'] = $username;
 $_SESSION['user_id'] = $user_id;

и я ссылаюсь на эту СЕССИЮ на другой странице, например:

// on the users homepage
$new_variable = $_SESSION['username'];

меняет значение на нечто отличное от базы данных.

ИЛИ, например, если я создам новую переменную с именем $ user_id

 // creating a new variable in the users inbox
 $user_id = 12312;

также изменяет значение SESSION на это.


Кто-нибудь знает, где я иду не так?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 27 октября 2009

Похоже, что register_globals включен. Это означает, что переменные $ _SESSION и глобальные переменные будут работать одинаково. Вы должны установить для register_globals значение Off, если вы контролируете хостинг, и если нет, спросите хост. Наконец, вам, вероятно, следует перенести хостинг, поскольку он очень небезопасен и его сложно программировать безопасно.

Вы можете продемонстрировать эту проблему с другими глобальными массивами, включая $ _GET.

Подробнее см. http://php.net/manual/en/security.globals.php

3 голосов
/ 27 октября 2009

Отключить register_globals в php.ini

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