当用户退出我的 CodeIgniter (PHP) 应用程序时,我试图停止/禁用浏览器的后退按钮功能。但是,我认为浏览器正在缓存页面,因此尽管会话因注销而被破坏,但它仍然可见。
我知道会话已死,因为当用户尝试做任何事情(单击任何链接等)时,他们会通过我控制器中的方法被踢出。
让后退按钮以这种方式工作并不理想,因为前一页包含机密信息。
不知道如何解决这个问题,可能是介于两者之间的重定向页面(但是用户可以非常快地按下后退按钮吗?),帮助!
谢谢。
当用户退出我的 CodeIgniter (PHP) 应用程序时,我试图停止/禁用浏览器的后退按钮功能。但是,我认为浏览器正在缓存页面,因此尽管会话因注销而被破坏,但它仍然可见。
我知道会话已死,因为当用户尝试做任何事情(单击任何链接等)时,他们会通过我控制器中的方法被踢出。
让后退按钮以这种方式工作并不理想,因为前一页包含机密信息。
不知道如何解决这个问题,可能是介于两者之间的重定向页面(但是用户可以非常快地按下后退按钮吗?),帮助!
谢谢。
我认为这可以帮助你,它对我有用。
CodeIgniter 框架版本:
$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,请将上述代码放入您的构造函数中以在您的页面上进行初始化。
添加这个以防止缓存前一页:
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");
我对这个问题的解决方案:
如果未设置 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');
}
我希望你学习!对不起我的英语!:-)
我认为以下内容应该可以帮助您
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
您可以在他们注销后使用 javascript 关闭窗口 - 从而消除任何返回页面的能力。
许多网上银行这样做是为了解决这个确切的问题。
注销后转到一个页面显示一些消息,例如“很快再见”,并在一段时间后从该页面重定向到所需页面,这可能会解决您的问题,例如以下用于重定向第二次标头的代码(“Refresh 3; url=home.php” );