php会话和会话unset+destroy保持会话完整


php session and session unset + destroy keeps session intact

我有一个小网站,它使用会话来检查用户登录。

当用户单击注销时,将重定向到仅包含会话销毁的页面。

代码如下:

<?php
session_start();
if(session_destroy()) {
    $_SESSION = array();
    header("Location: http://domain.com/");
}
exit();
?>

我已尝试删除if语句,以便在销毁会话时检查是否存在任何问题。

我甚至使用了unset并将数组设置为空。

当重定向到域主页时,用户仍然登录并且会话仍然设置。

此外,我试图取消设置特定的会话,但仍然没有发生任何事情。

--更新:会话甚至没有作为空值返回。注销后回显会话仍然返回用户名的值。

这个答案应该会有所帮助。正如罗兰·斯塔克在评论中提到的那样,session_demote不会删除cookie。

https://stackoverflow.com/a/3512570/3563178

试试这个。

<?php
session_start();
if(session_destroy()) {
echo '<meta http-equiv="refresh" content="0;URL=http://domain.com">';
}
exit();
?>

我认为在你的这种特殊情况下,这个标题是在抛出一个错误。嗯。。。。。(标头已发送)。。。