cakeHow可以在成功注销后管理php会话


cakeHow can manage php session after successful logout?

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

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

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

提前谢谢。

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

我通过PHP:添加了一些标题,从而避免了这个特殊的问题

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

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

您需要强制它刷新页面,而不是从缓存中删除它。

再加上不同的浏览器处理这个问题的方式不同。尝试在浏览页面上为您的文档添加第二部分

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

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

示例:

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

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

如果你使用CakePHP 2,你也可以只做

$this->response->disableCache();

这基本上与Repox 给出的答案相同