防止用户退出后返回
P粉029327711
P粉029327711 2023-08-27 19:48:23
0
2
551
<p>我不希望用户在注销后通过单击后退按钮返回到受保护的页面。在我的注销代码中,我取消设置会话并重定向到登录页面。但是,我认为浏览器正在缓存该页面,因此尽管会话因注销而被破坏,但它仍然可见。</p> <p>我可以通过不允许浏览器缓存来避免这种情况</p> <p><code>header("缓存控制", "无缓存,无存储,必须重新验证")</code></p> <p>但这样我就失去了浏览器缓存的优势。</p> <p>请提出一个更好的方法来实现这一目标。我觉得,一定有一种方法可以通过 javascript 客户端来处理这个问题</p>
P粉029327711
P粉029327711

全部回复(2)
P粉805931281

我也遇到了同样的问题,花了一整天的时间来解决它, 最后修正如下:

在登录验证脚本中,如果用户经过身份验证,则设置一个会话值,例如如下所示:

$_SESSION['status']="Active";

然后在用户配置文件脚本中放入以下代码片段:

以上代码的作用是,只有且仅当 $_SESSION['status'] 设置为 "Active" 时,才会转到用户个人资料,并且仅当用户经过身份验证时,此会话密钥才会设置为“Active”... [注意否定 [' ! '] 在上面的代码片段中]

注销代码大概应该如下:

{
    session_start();
    session_destroy();
    $_SESSION = array();
    header("location:login.php");
}

希望这有帮助......!!!

P粉613735289

在 PHP 中实现此功能,而不是在 javascript 中。

在每个页面的顶部,检查用户是否已登录。如果没有,他们应该被重定向到登录页面:

正如您所提到的,注销时,只需取消设置logging_in会话变量,然后销毁会话:

如果用户现在点击返回,则没有logged_in会话变量可用,并且页面将不会加载。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板