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

时间:2015-11-18 11:39:18

标签: php session

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

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

代码如下:

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

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

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

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

此外,我试图取消特定的会话,但仍然没有任何反应。

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

2 个答案:

答案 0 :(得分:0)

这个答案应该有所帮助。正如Roland Starke在评论中提到的那样,session_destroy不会删除cookie。

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

答案 1 :(得分:0)

试试这个。

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

我认为标题在你的这种特殊情况下会引发错误。嗯......(标题已发送)......