防止用户退出后返回
P粉029327711
P粉029327711 2023-08-27 19:48:23
[HTML讨论组]
<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会话变量可用,并且页面将不会加载。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号