php - 按后退按钮会重定向已登录的用户以注销吗?

标签 php javascript authentication logout

我有一个带有用户名和密码的日志系统,在用户使用用户名和密码登录后,如果我按后退按钮,它会将我重定向到登录页面。 如何在 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("位置:".$_SESSION['ref']);

关于php - 按后退按钮会重定向已登录的用户以注销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152052/

相关文章:

ruby - Facebook 桌面应用程序

ios - 在 Enterprise iOS 应用程序中使用来自 .mobileconfig 的客户端 SSL 证书

php - 使用 PHP SDK 获取页面的最新 Facebook 帖子

php - 使用 include 时捕获 PHP Parser 错误

javascript - 不能使用 Canvas 方法 putImageData

javascript - 定义不变的值(value)

php - 如何使用 CSS 设置统一划分,其中列和行划分相等

PHP多重循环生成新数组

javascript - 为什么 0 和 null 用等于运算符表示 true 和 false?

java - JAX WS 客户端无法进行身份验证