$ _SESSION ссылки на переменные ссылки на страницах?

У меня есть сеанс PHP на моем веб-сайте, который я использую для хранения информации для входа. Основная структура массива такова:

$_SESSION = Array(

[uid]=>Int
[acc]=>Array
[lastAction]=>Timestamp

)

Когда я устанавливаю эти переменные сеанса в моем сценарии PHP входа в систему, я устанавливаю их так:

$_SESSION["uid"] = $uid;
$_SESSION["acc"] = array(...);
$_SESSION["lastAction"] = time();

Это никогда не создавало проблем, пока я не добрался до одного сценария позже, где я пошел связывать некоторые переменные, используя MySQLi. Я хотел получить uid переменная из одной из моих таблиц, поэтому я пошел дальше и сделал это:

$stmt = $link->prepare("SELECT `uid` ... FROM ...");
...
$stmt->bind_result($uid, ...);

Оператор выполнялся без проблем, и все данные верны, но теперь есть проблема с сеансом.

По-видимому, $_SESSION["uid"] все еще привязан к ссылке $uid, хотя я сейчас на другой странице и я не передавал переменную по ссылке при настройке сеанса.


Чтобы проверить эту теорию, я снова установил сеанс и запустил этот код:

<?php

session_start();
$uid = 1823479;
print_r($_SESSION);

?>

Конечно же, $_SESSION["uid"] равняется 1823479.

Это ожидаемое поведение? Я никогда раньше не сталкивался с этой проблемой, но так как я не устанавливал сеанс с использованием ссылок, на мой взгляд, это не ожидаемое поведение.

Дополнительная информация:

PHP Ver: 5.3

2

Решение

Используйте phpinfo (), чтобы проверить, установлено ли для register_globals значение «off». Похоже, это может быть установлено на «вкл», в этом случае $ _SESSION [«uid»] будет таким же, как $ uid.

В PHP, почему мои переменные сеанса сохраняются как ссылки?
http://bytes.com/topic/php/answers/759731-register_globals-off-session-side-effect

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]