【发布时间】:2011-07-03 05:01:38
【问题描述】:
我有一个奇怪的情况,即未设置会话变量。它似乎是由以下行引起的:
if($_SERVER['SCRIPT_NAME'] != "/search.php") unset($_SESSION["search"]);
而如果我删除 if 子句中的 unset() ,它就可以正常工作。奇怪的是回显一些任意文本代替 unset(),什么都没有出来(表明一切正常)。
请记住,$_SESSION['search'] 实际上是一个数组(有时是多维数组),任何人都可以看到上述行可能导致 $_SESSION 仍未设置的任何问题吗??
编辑:
include SERVER_ROOT.'/classes/session.class.php';
$sess = new Session();
session_start();
例如,以下将回显“hallelujah”:
if($_SERVER['SCRIPT_NAME'] != "/search.php") ;
if(isset($_SESSION["search"])) echo 'hallelujah';
但这不会(并且 if 语句的计算结果为假):
if($_SERVER['SCRIPT_NAME'] != "/search.php") unset($_SESSION["search"]);
if(isset($_SESSION["search"])) echo 'hallelujah';
【问题讨论】:
-
你的问题有点难以理解。如果您的问题是
$_SESSION为空,通常是您忘记先调用session_start()。 -
我知道它很难描述,session_start 肯定会被调用。