我已经制作了这段代码(它是我整个剧本的一部分) -
if(unset($_SESSION['USER_ID']))
{
$success_code_array[] = '3111';
$_SESSION['POPUP_SUCCESS_CODE'] = $success_code_array;
session_write_close();
header("Location: ".$_SESIION['PATH']."");
exit();
}
else
{
$_SESSION['ERROR_CODE'] = '177';
session_write_close();
header("Location: ".$_SESSION['PATH']."error.php");
exit();
}
我得到了错误 -
解析错误:语法错误,第21行的C:\ xampp \ htdocs \ mysharepoint \ 1.1 \ res \ scripts \ php \ functions \ log_out.php中的意外T_UNSET
任何人都可以告诉我为什么我会收到此错误以及可以采取哪些措施来克服此错误?
答案 0 :(得分:2)
unset无效,它不会返回任何内容。如果这是一种注销脚本,您可能会破坏整个会话,如下所示:
if(session_destroy()) { ...
当然,在销毁会话之前,您应该将$_SESSION['PATH']
保存到某处以供进一步使用 ...
修改强>
请注意,那里也有拼写错误。它不会导致问题,但可能会在几分钟后为您节省时间:
if(unset($_SESSION['USER_ID']))
{
$success_code_array[] = '3111';
$_SESSION['POPUP_SUCCESS_CODE'] = $success_code_array;
session_write_close();
header("Location: ".$_SESIION['PATH'].""); // <-- $_SESIION instead of $_SESSION
exit();
}
答案 1 :(得分:0)
请勿取消会话,destroy it。这是解开它的正确方法。
答案 2 :(得分:0)
unset()不返回任何内容(void)。 http://de2.php.net/manual/en/function.unset.php
我不确定错误是否来自于此,但它并没有在if语句中使用它。