我一定是真的很傻,因为现在似乎很明显的事情让我完全困惑。
我有一个 session ...
即 $_SESSION['handbag_id'];
在某个时候,我需要完全终止这个 session 。
即
// at the start of the page
session_start();
// elsewhere on the same page
unset($_SESSION);
session_destroy();
然而,我可以转到另一个页面,然后做一个
echo $_SESSION['handbag_id'];
而且我仍然拥有与以前相同的 handbag_id。
我错过了什么?是我不明白这是如何工作的,还是我有一些服务器设置支配着我破坏其值(value)的愿望?
最佳答案
session 函数可能非常棘手。要完全终止 session ,您需要为 $_SESSION
超全局分配一个新值。否则,您所做的就是从当前脚本中卸载 session 数据。这应该有效:
session_start();
$_SESSION = array();
session_write_close(); // Not required
如果您还需要打开一个全新的 session ,您可以这样做:
session_regenerate_id(FALSE);
$tmp = session_id();
session_destroy();
session_id($tmp);
unset($tmp);
session_start();
更新:
您可能会发现一个有用的相关问题:Close session and start a new one
关于php - 为什么我的 session 仍然存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921231/