我试图通过一个$_SESSION
变量在两页之间传递一个值,然后将其清空,如下所示:
我在一个 PHP 页面上为 session 变量赋值:
$_SESSION["elementName"]="a_373";
并尝试将其存储在另一个页面上的变量中,如下所示:
if (!empty($_SESSION["elementName"])) {
$elemName=$_SESSION["elementName"];
$_SESSION["elementName"]="";
} else {
$elemName="";
}
$elemName
当我打印出来时,它的值总是空的。$_SESSION["elementName"]="";
但是,当我从上面的代码中删除该行时,我得到了正确的打印输出。
编辑:我正在打印$elemName
而不是$_SESSION["elementName"]
-print($elemName);
我使用 PHP 5.3.2 的共享主机帐户并register_globals
设置为关闭(根据phpinfo();
)。
一旦我得到它的值,我需要重置/清空会话变量,但它不起作用,这在过去的几天里一直让我感到困惑。任何想法为什么?谢谢!
编辑:
附加线索:我在 if 语句之前使用会话的 var_dump 进行了测试,并在 else 部分中为 $elemName 设置了另一个值,如下所示:
var_dump($_SESSION["elementName"]);
$elemName="x";
if (isset($_SESSION["elementName"]) && !empty($_SESSION["elementName"])) {
$elemName=$_SESSION["elementName"];
$_SESSION["elementName"]="";
} else {
$elemName="None";
}
print("<br />".$elemName);
我得到了这个结果:
string(5) "a_373"
None