【发布时间】:2011-07-28 23:48:26
【问题描述】:
我的问题是,当我登录我的应用程序并在会话中存储用户 ID 之后,我按下浏览器后退按钮再次进入登录页面并且该状态(登录)我检查我的登录页面是否存在任何用户然后调用注销当用户登录并按后退然后按前进时注销和相同的检查功能。但是这两种情况我的应用程序都显示了以前的登录页面。
我希望当用户成功登录并查看状态为按下浏览器后退按钮并到达登录页面的成功页面时,用户会自动注销并且无法单击前进按钮(禁用前进按钮)。
当用户登录并单击以注销链接并销毁所有会话数据并到达登录页面时,该状态以单击浏览器转发按钮无效(禁用)。Firefox、chrome 和 IE 在注销后运行良好向前和向后禁用并满足我的需求,但 Opera、Safari 和其他浏览器有问题。请帮我。这是我的代码 sn-p
//Login function
public function index(){
$data = array();
if( $_SESSION['companyId'] ){
$this->logout();
}
$data['company'] = $this->Main->getCompany();
echo $this->load->view('auth/login', $data);
}
//login success function
public function login(){
$data = array();
$username = $this->input->post('username');
$company_id = $this->input->post('company');
if($_SESSION['companyId']){
$company_id = $_SESSION['companyId'];
}
$_SESSION['companyId'] = $company_id;
$this->layout->view('auth/index', $data);
}
//Log out function
public function logout()
{
session_destroy();
redirect(base_url().'index.php/auth/index');
}
【问题讨论】:
-
你可以使用 header('Location: index.php');登录后将它们发送到索引页面,则不会有前进按钮
-
将此行
echo session_cache_limiter();添加到您使用会话的页面之一,记下值,在您的问题中发布。之后删除该行。