1

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

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

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

提前致谢。

4

4 回答 4

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"); 

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

于 2012-07-09T21:36:24.573 回答
0

Why dont you check the authentication on ur welcome page.

Example:

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

Another better application will be to redirect using Headers. header('Location: ' (LINK) );

于 2012-07-09T21:55:35.857 回答
0

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

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

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD>
于 2012-07-09T21:34:43.263 回答
0

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

$this->response->disableCache();

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

于 2012-07-10T08:10:36.737 回答