Переменная сеанса установлена, но в PHP отчетности она не установлена? - PullRequest
1 голос
/ 15 марта 2012
print_r($_SESSION);

дает мне это:

[post] =>
[verify] => 3bae5359ea60d7f00d553ae5d091ae4b
[token] => 

токен установлен, но ноль, верно?Когда я реализую это:

if (!isset($_SESSION['token'])) {
    die("Token not set");
}

Сценарий умирает.Почему это происходит?

Ответы [ 2 ]

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

Из документации -

bool isset (mixed $ var [, mixed $ ...]) *

isset определяет, установлена ​​ли переменнаяи не NULL

Также -

Возвращаемые значения: Возвращает TRUE, если var существует и имеет значение, отличное от NULL, иначе FALSE.

Таким образом, если предоставленный аргумент содержит NULL или если он просто не существует, isset вернет FALSE.Это именно то, что происходит с вашим сценарием, и в результате он умирает.

1 голос
/ 15 марта 2012

Нет значения в $ _SESSION ['token'], поэтому оно падает, если условие умирает.

...