会话破坏

时间:2011-09-26 08:09:48

标签: php session

在我的工作平台上,我最终遇到了session_destroy问题

function logout()
{

 $_SESSION['id'] = '';
 session_destroy();

}

这里我使用null值取消会话id变量,并使用session_destroy()函数来销毁会话。

但问题是,从我的帐户退出后,当我按下浏览器的后退按钮时,它会显示状态为已登录即使我可以浏览我的帐户的个人资料和链接

谢谢

4 个答案:

答案 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()方法将在注销脚本中清除所有内容。大部分工作已经完成了。