我有一个小网站,它使用会话来检查用户登录。
当用户单击注销时,将重定向到仅包含会话销毁的页面。
代码如下:
<?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();
?>
我认为在你的这种特殊情况下,这个标题是在抛出一个错误。嗯。。。。。(标头已发送)。。。