我目前正在使用 codeigniter 作为我的框架学习 MVC 的基础知识,并创建了一个登录页面。现在我已经在用户登录并存储了会话数据后重定向了用户,但问题是在我登录后(我重定向到另一个页面)然后按下后退按钮,登录页面仍然显示,除非我突出显示地址中的 URL栏并按下回车键,在其中我再次返回重定向页面。好吧,我知道这是因为我进行了会话检查,但我需要一个解决方案来解决这个问题,以便用户除非他注销,否则不会再次返回登录页面。除非他/她再次登录,否则注销用户不要返回某个页面也是如此。
为了提供更多详细信息,我到底想要发生什么,就像在 facebook 登录中一样,在您登录并单击浏览器上的后退按钮后,facebook 仍会将您重定向到您的主页,而不是登录页面。同样的事情要注销。
到目前为止,这是我的控制器,我认为这说明了一切。如果我在我的代码中做了一些冗余并理解我是这方面的新手,请纠正我。:)
public function index()
{
$data['error'] = null;
$username = $this->input->post('username');
$password = $this->input->post('password');
$data['login'] = $this->login_model->get_login_credentials($username,$password);
$data['session'] = $this->login_model->get_session($username);
//CHECK IF THE $PAGE VIEW IS EXISTING
if ( ! file_exists('application/views/pages/login.php'))
{
// IF PAGE DOESN'T EXISTS SHOW 404 ERROR
show_404();
}
if(($this->input->post('login')=='Login'&&$data['login']==1)||($username==$data['session']['username'])){
//SUCCESS LOGIN
$this->load->helper('url');
redirect('news');
}
if($this->input->post('login')=='Login'&&$data['login']!=1){
//LOGIN FAILED
$data['error'] = "Invalid login credentials.";
}
//FOR THE TITLE PART
$data['title'] = ucfirst('login');
$this->load->view('pages/login/login', $data);
$this->load->view('templates/footer', $data);
}