按后退键将重定向已登录的用户注销
Pressing back button redirects the logged user to log out?
我有一个用户名和密码的日志系统,在用户用用户名和密码登录后,如果我按下后退按钮,它会重定向到我的登录页面。如何在php中防止这种情况??
首先你想让页面过期并阻止它们被浏览器缓存:
<?
//Set no caching
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
其次,您应该检查用户是否已登录,如果是,将他们重定向到上一页,类似于:
// SET REFERRER
function strleft($s1, $s2) {
return substr($s1, 0, strpos($s1, $s2));
}
function selfURL() {
if(!isset($_SERVER['REQUEST_URI'])) {
$serverrequri = $_SERVER['PHP_SELF'];
}
else {
$serverrequri = $_SERVER['REQUEST_URI'];
}
$s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
$protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
$_SESSION['ref'] = $protocol."://>/".$_SERVER['SERVER_NAME'].$port.$serverrequri;
}
selfURL();
然后 header("Location: " . $_SESSION['ref']);
必须检查用户的会话。当此会话存在时,给出用户已经登录的警告或将用户重定向到index.php等
根据您的评论,您建议您真正要问的问题是如何禁用后退按钮?
这绝对是不可能从php,我认为可能是不可能的,因为它是由浏览器控制的。JavaScript给了你一些控制,所以你可以找到代码来忽略或禁用按钮。
搜索"JavaScript disable back button"应该会得到一些结果。
相关文章:
- 需要提取当前登录用户的用户名以在字段中输入
- 如何获取登录用户的twitter oAuth令牌
- 用户注销警告和自动超时
- 用于登录和注销功能的Backbone.js架构
- 如何向登录用户隐藏选择加入脚本
- 如何使用javascript确定登录用户的浏览器版本和IP地址
- 获取登录用户的电子邮件(Firebase安全规则)
- Facebook js-sdk可以't检索已登录用户的名称
- Sencha Touch 2-登录用户状态
- 如何在使用 Firebase 登录或注销时更改状态而不刷新
- 通过会话切换登录和注销
- 在 SharePoint 中获取登录用户的用户名并立即使用它
- jQuery / bubbling - 如何为非登录用户停止我的 JavaScript 代码
- 如何在 Meteor 的服务器上创建用户帐户后自动登录用户
- 使用javascript基于登录用户重定向URL链接
- 使用 Facebook Javascript API 将用户注销并重新登录
- 用户注销后显示登录,然后按返回按钮
- 确保用户使用cookieStore和AngularJS登录或注销的最佳实践
- 导航菜单指令在用户登录或注销时刷新
- 按后退键将重定向已登录的用户注销