按后退按钮会重定向记录的用户以注销?

时间:2013-03-01 06:41:32

标签: php javascript login logout

我有一个用户名和密码的日志记录系统,用户使用用户名和密码登录后,如果我按下后退按钮,它会重定向到我登录页面。 如何在php中防止这种情况?

3 个答案:

答案 0 :(得分:4)

首先,您希望使页面过期并防止它们被浏览器缓存:

<?
//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']);

答案 1 :(得分:0)

您必须检查用户的会话。当会话存在时,发出警告,表示用户已登录或将用户重定向到index.php或其他内容。

答案 2 :(得分:0)

根据您的意见,您建议您真正问的问题是如何禁用后退按钮?

这绝对不可能来自php,我认为可能根本不可能,因为它是由浏览器控制的。 JavaScript为您提供了一些控制权,因此您可以找到要忽略的代码或禁用该按钮。

Google搜索“禁用JavaScript后退按钮”可以为您提供一些结果。