注销后的CodeIgniter后退按钮

时间:2012-05-02 17:44:16

标签: php html codeigniter session caching

当用户退出我的CodeIgniter(PHP)应用程序时,我正在尝试停止/禁用浏览器的后退按钮功能。但是,我认为浏览器正在缓存页面,因此尽管会话从注销中被销毁,它仍然可见。

我知道会话已经死了,因为当用户尝试做任何事情(点击任何链接等)时,他们会通过控制器中的方法被踢出。

由于上一页包含机密信息,因此后退按钮以这种方式工作并不理想。

不知道如何解决这个问题,也许是介于两者之间的重定向页面(但是用户可以快速地关闭后退按钮吗?),帮助!

感谢。

6 个答案:

答案 0 :(得分:13)

我认为这可以帮助你,它适合我。

CodeIgniter Framework版本:

$this->output->set_header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
$this->output->set_header('Cache-Control: post-check=0, pre-check=0',false);
$this->output->set_header('Pragma: no-cache');

PHP版本:

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

如果您使用的是PHP OOP,请将上述代码放在构造函数中以在您的页面上进行初始化。

答案 1 :(得分:12)

添加此项以防止缓存上一页:

header("cache-Control: no-store, no-cache, must-revalidate");
header("cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

答案 2 :(得分:1)

我解决这个问题的方法:

  1. 检查cookie是否设置为if。
  2. 步骤参数并调用用户模型的登录方法。
  3. 最后收取相应的意见。
  4. 如果未设置cookie,将重定向到登录页面。

    if(isset($_COOKIE['ci_session'])){ 
      $user= $this->security->xss_clean($this->input->post('user'));
      $pass= $this->security->xss_clean($this->input->post('pass'));
    
      $result = $usrLog->loguearUsuario($user, $pass);
    
      if($result == TRUE){
         $data = $this->session->set_userdata('logged_in', $sessArray);
         $this->load->view('pages/admin', $data);
      }
    
    }else{
       header('Location: login'); 
    }
    

    我希望你学习!抱歉我的英语! : - )

答案 3 :(得分:0)

注销后转到一页显示一些消息,例如“很快见到你”,并在一段时间后从那里重定向到所需的页面,这可能会解决您的问题 如下面的代码重定向第二次 header(“Refresh 3; url = home.php”);

答案 4 :(得分:0)

您可以在注销后使用javascript关闭窗口 - 从而删除任何返回页面的功能。

很多在线银行这样做是为了解决这个问题。

答案 5 :(得分:0)

我认为以下内容可以帮助你

1)创建一个logout.php文件并将以下代码添加到其中

<html>
 <head>
  <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
$( "#submit" ).trigger( "click" );
});
</script>
</head>

<body>
<form action="<?php echo base_url();?>login" method="post">
<input type="submit" id="submit" style="display: none;">
</form>
</body>
</html>

2)修改您的注销功能以加载上面的视图文件logout.php