私は現在、フレームワークとして codeigniter を使用して MVC の基本を学んでおり、ログイン ページを作成しました。ユーザーがログインしてセッションデータを保存した後、ユーザーをリダイレクトしましたが、問題はログインした後(別のページにリダイレクトした場所)、[戻る]ボタンを押した後、アドレスのURLを強調表示しない限りログインページが表示されたままですバーを押して Enter キーを押すと、リダイレクトされたページに戻ります。これは私が行ったセッションチェックが原因であることは承知していますが、ユーザーがログアウトしない限りログインページに戻らないように解決する方法についての解決策が必要です。ログアウトしたユーザーが再度ログインしない限り、特定のページに戻らないのと同じことです。
詳細を説明すると、私がまさに望んでいたことは、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);
}