在我的工作平台上,我最终遇到了session_destroy问题
function logout()
{
$_SESSION['id'] = '';
session_destroy();
}
这里我使用null值取消会话id变量,并使用session_destroy()函数来销毁会话。
但问题是,从我的帐户退出后,当我按下浏览器的后退按钮时,它会显示状态为已登录。 即使我可以浏览我的帐户的个人资料和链接。
谢谢
答案 0 :(得分:4)
您必须取消设置会话以及销毁会话以将其从系统中完全删除。
你可以用php函数来实现..
session_unset(); or you can use unset($_SESSION);
session_destroy();
答案 1 :(得分:2)
它认为您应该尝试使用session_unset()
为了完全终止会话,比如要将用户注销,还必须取消设置会话ID。
如果使用cookie传播会话ID(默认行为),则必须删除会话cookie。 setcookie()可用于
<?php
session_start();
$sessionName = session_name();
$sessionCookie = session_get_cookie_params();
session_unset();
session_destroy();
setcookie($sessionName, false, $sessionCookie['lifetime'], $sessionCookie['path'], $sessionCookie['domain'], $sessionCookie['secure']);
?>
答案 2 :(得分:0)
试试这个:
unset($_SESSION);
session_destroy();
session_regenerate_id();
答案 3 :(得分:0)
尝试使用Zend_Session:
,而不是滚动自己的会话代码并可能遗漏某些内容http://framework.zend.com/manual/en/zend.session.html
Zend_Session_Namespace的构造函数将自动调用session_start(),同样Zend_Session :: destroy()方法将在注销脚本中清除所有内容。大部分工作已经完成了。