2013-03-01 85 views
0

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

+0

你为什么要这个...? – 2013-03-01 06:42:22

+1

我认为您可以在登录页面执行检查:如果此用户已经登录 - 将他重定向到其他地方。 – k102 2013-03-01 06:45:57

+0

那不是我的问题.. – AndRaGhu 2013-03-01 06:48:40

回答

0

您必须检查用户的会话。然后会话存在时,提示用户已经登录或将用户重定向到index.php或其他东西。

+0

如何访问浏览器后退按钮的功能? – AndRaGhu 2013-03-01 06:49:42

+1

@AndRaGhu,你不能在php中控制用户的“后退按钮”,因为PHP是服务器端。自己写一本关于网络编程的书。 – k102 2013-03-01 06:53:41

+0

当用户登录时,您需要将他重定向到一个页面以防止重新提交警告。 – 2013-03-01 06:53:49

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

0

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

这绝对不可能从PHP,我想可能根本不可能,因为它是由浏览器控制的。 JavaScript为您提供了一些控制,以便您可以找到忽略或禁用按钮的代码。

谷歌搜索'JavaScript禁用后退按钮'应该会给你一些结果。

相关问题