注销会话恢复后退按钮

注销会话恢复后退按钮

问题描述:

我正在登录页面。当我注销时,我清除了Cookie。但是当我在注销后按下后退按钮会话恢复。我如何避免会话恢复..注销会话恢复后退按钮

+1

是什么让你觉得会得到恢复? – 2010-11-19 13:39:29

+0

您确定要删除您的框架用于跟踪会话的任何会话cookie(与您设置的cookie相对)吗? – 2010-11-19 13:41:44

这可能是一个误解。

当按下按钮时,您很可能会在浏览器中看到页面的缓存版本。 不是表示您仍然登录。

尝试刷新上一页。它应该显示登录对话框。

如果要防止以这种方式显示页面,here是关闭浏览器缓存的一种方法。

如果您确实保持登录状态,则说明有问题。在这种情况下,我们需要看一些代码。

+0

即使在清除缓存之后,在浏览器提示重新发送信息后,缓存也会恢复。 – user513458 2010-11-19 13:46:30

+2

@user ah,但情况不同:然后,您的登录凭据实际上会重新发送。当您登录用户时(而不是直接显示内容),您可以通过将标题重定向到目标页面来解决该问题。 – 2010-11-19 13:47:23

+0

是的,他应该使用重定向后事后模式来处理这 – 2010-11-19 13:52:07

session_destroy php man page为您的问题提供了一个快捷方便的解决方案。

+0

是否有可能通过cookie删除登录数据,而无需在php中创建会话.. – user513458 2010-11-19 13:49:58

从评论中显示您的问题是,当您在浏览器上单击“返回”时,浏览器会提示您重新发送POST数据。当然,当你这样做时,你只需重新发送登录数据,从而立即将用户登录回去。避免烦人的浏览器提示重新发送POST数据并因此也避免重新登录用户的解决方案是使用“重定向后”模式。

让您的登录表单的POST目标成为其他页面 - 而不是您的登录欢迎页面或任何其他页面。该目标页面处理登录信息,授权,然后将重定向到欢迎页面(成功),或者如果验证失败,则返回到登录页面。

这样你将避免浏览器的提示,并且用户被重新登录。真的所有形式应该实施这种模式,因为它会导致更好的用户体验,并且避免了像你所经历过的一个陷阱。

请尝试以下代码: 退出按钮问题已恢复的会话已得到解决。

链接:

http://www.codingslover.com/2015/01/How-to-resolved-when-Logged-out-sessions-get-restored-by-back-button.html

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
+0

codingsolver.com链接看起来死了,并且现在有一些垃圾邮件。 – Jbecwar 2018-01-19 17:36:38