我一定是非常愚蠢的,因为这似乎是一个相当明显的事情,现在让我感到困惑。
我有一个会议......
即$_SESSION['handbag_id'];
并且在某个时刻,我需要彻底杀死这个会话。
即
// at the start of the page
session_start();
// elsewhere on the same page
unset($_SESSION);
session_destroy();
然而,我可以转到另一页,并做一个
echo $_SESSION['handbag_id'];
我仍然和以前一样拥有同样的handbag_id。
我错过了什么?难道我不明白这是如何工作的,或者我是否有一些服务器设置对我摧毁其价值的欲望至关重要?
答案 0 :(得分:3)
不要这样做
unset($_SESSION);
这样做
$_SESSION = array();
最后
session_destroy();
答案 1 :(得分:3)
会话功能可能非常棘手。要完全终止会话,您需要为$_SESSION
超全局分配新值。否则,您所做的只是从当前脚本卸载会话数据。这应该有效:
session_start();
$_SESSION = array();
session_write_close(); // Not required
如果您还需要打开一个全新的会话,您可以这样做:
session_regenerate_id(FALSE);
$tmp = session_id();
session_destroy();
session_id($tmp);
unset($tmp);
session_start();
<强>更新强>
您可能会觉得有用的相关问题:Close session and start a new one
答案 2 :(得分:0)
在打印前使用session_comitt
,看看魔术:)