成功注销后如何管理php会话?

时间:2012-07-09 21:32:06

标签: php cakephp

在我的应用程序中有三个网页。 1.)登录页面。 2.)欢迎页面 3.)注销页面

我使用PHP会话对象管理了会话。 在我的应用程序中,登录和注销功能正常运行。

这里的问题是:当用户从logout.php页面点击浏览器后退按钮成功注销后,再次访问welcome.php页面,然后他成功注销。但是我希望页面已经过期或者不应该回来welcome.php页面。

提前致谢。

4 个答案:

答案 0 :(得分:3)

这实际上有点棘手,但(据我所知)这与缓存有关。

我设法通过PHP添加一些标题来避免这个特殊问题:

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache"); 

这些当然应该只在用户登录时设置,因为缓存通常应该被认为是好事。

答案 1 :(得分:0)

您需要强制它刷新页面而不是从缓存中加载它。

加上不同的浏览器处理不同的方式。尝试在浏览页面上向您的文档添加第二部分

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD>

答案 2 :(得分:0)

为什么不在欢迎页面上查看身份验证。

示例:

if($_SESSION['authenticated'] = true) include('welcome.php') else include('login.php)

另一个更好的应用程序是使用Headers重定向。 header('Location: ' (LINK) );

答案 3 :(得分:0)

如果您使用CakePHP 2,您也可以执行

$this->response->disableCache();

基本上与Repox给出的答案相同[/ p>]