防止用户退出后返回
P粉029327711
2023-08-27 19:48:23
<p>我不希望用户在注销后通过单击后退按钮返回到受保护的页面。在我的注销代码中,我取消设置会话并重定向到登录页面。但是,我认为浏览器正在缓存该页面,因此尽管会话因注销而被破坏,但它仍然可见。</p>
<p>我可以通过不允许浏览器缓存来避免这种情况</p>
<p><code>header("缓存控制", "无缓存,无存储,必须重新验证")</code></p>
<p>但这样我就失去了浏览器缓存的优势。</p>
<p>请提出一个更好的方法来实现这一目标。我觉得,一定有一种方法可以通过 javascript 客户端来处理这个问题</p>
我也遇到了同样的问题,花了一整天的时间来解决它, 最后修正如下:
在登录验证脚本中,如果用户经过身份验证,则设置一个会话值,例如如下所示:
然后在用户配置文件脚本中放入以下代码片段:
以上代码的作用是,只有且仅当
$_SESSION['status']
设置为"Active"
时,才会转到用户个人资料,并且仅当用户经过身份验证时,此会话密钥才会设置为“Active”... [注意否定 [' ! '] 在上面的代码片段中]注销代码大概应该如下:
希望这有帮助......!!!
在 PHP 中实现此功能,而不是在 javascript 中。
在每个页面的顶部,检查用户是否已登录。如果没有,他们应该被重定向到登录页面:
正如您所提到的,注销时,只需取消设置logging_in会话变量,然后销毁会话:
如果用户现在点击返回,则没有logged_in会话变量可用,并且页面将不会加载。