2012-05-02 16 views
5

ユーザがCodeIgniter(PHP)アプリケーションからログアウトすると、ブラウザの戻るボタン機能を停止/無効にしようとしています。しかし、私はブラウザがページをキャッシュしているので、ログアウトからセッションが破棄されても見えるようになっていると思います。ログアウト後のCodeIgniter戻るボタン

ユーザーが何かをしようとしたとき(リンクなどをクリックしたとき)、私のコントローラ内のメソッドを通してそれらが追い出されるため、セッションが終了していることが分かります。

前のページに機密情報が含まれているため、この方法で戻るボタンを使用することは理想的ではありません。

これに取り組むには手がかりがありません。間にリダイレクトページがあるかもしれません(ただし、ユーザーはすぐに戻るボタンをスラムすることができます)。

ありがとうございました。 1ページのようないくつかのメッセージは、「すぐに見る」といくつかの時間後に(「3をリフレッシュし、これが二度目に ヘッダをリダイレクトするためのコード下記のようなあなたの問題 を解決する可能性があります目的のページにそのからリダイレクト示しログアウト後藤後

+0

http://stackoverflow.com/questions/5251110/back-button-takes-the-user-back-to-protected-page-after-logout-zend-framework codeigniterではありませんそれを動作させる –

+1

これをチェックして、私はそれがあなたを助けると思うhttp://stackoverflow.com/questions/4630484/how-do-i-make-firefox-reload-page-when-back-button-is-pressed – Ula

+0

ありがとう@Ula、ヘッダーソリューションは私のために働いた。 –

答えて

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"); 
0

。 url = home.php ");

+0

http://stackoverflow.com/questions/6648093/php-prevent-going-back-page-after-log-out – user1370510

0

ログアウトした後にJavaScriptを使用してウィンドウを閉じて、ページを戻す機能を削除することができます。

オンライン銀行の多くは、この正確な問題を解決するためにこれを行います。

13

私は、これはそれが私の作品、あなたを助けることができると思います。

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を使用している場合は、あなたのページに初期化するために、あなたのコンストラクタで上記のコードを置きます。

+0

ここで私は上記のコードを追加する必要がありますか?コントローラーまたは各ビューページで私はcodeigniterフレームワークを使用しています。 –

0

私は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それに次のコードを追加します)以下は

1あなたを助けるべきだと思います)上記のビューファイルをロードするために、あなたのログアウト機能を変更します。この問題のlogout.php

1

私のソリューション:クッキーがWIL設定されていることを

  1. チェックlとif。
  2. ステップパラメータとユーザモデルのログインメソッドを呼び出します。
  3. 最後に対応するビューに請求します。

クッキーが設定されていないと、ログインページにリダイレクトされます。

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

私はあなたが学ばれることを願っています!そして、私の英語のために申し訳ありません!:-)

関連する問題