会话变量已设置,但未设置报告 PHP 变量


Session variable is set, but PHP reporting it is not set?

print_r($_SESSION);

给我这个:

[帖子] =>[验证] => 3BAE5359ea60d7f00d553ae5d091ae4b[令牌] =>

令牌已设置,但为空,对吧?当我实现这个时:

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

脚本死亡。为什么会这样?

来自文档 -

布尔 isset ( 混合 $var [, 混合 $... ] (

isset 确定变量是否设置且不为 NULL

也-

返回值:如果 var 存在且值不是空,否则为假。

因此,如果提供的参数包含 NULL 或根本不存在,则isset将返回FALSE 。这正是您的脚本正在发生的事情,因此,它会死亡。

$_SESSION['token'] 中没有价值,这就是为什么它落入 if 条件并死亡。