7

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

ユーザーが何かをしようとすると(リンクをクリックするなど)、コントローラーのメソッドを介してキックアウトされるため、セッションが終了していることはわかっています。

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

これに取り組む方法の手がかりではなく、おそらくその間にリダイレクトページがあります(しかし、ユーザーは戻るボタンをすぐに叩くことができますか?)、助けてください!

ありがとう。

4

6 に答える 6

14

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

CodeIgniter Frameworkバージョン:

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

于 2012-09-07T21:55:23.897 に答える
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");
于 2012-05-03T21:38:14.660 に答える
1

この問題に対する私の解決策:

  1. クッキーが設定されていることを確認してください。
  2. パラメータをステップ実行し、ユーザーモデルのログインメソッドを呼び出します。
  3. 最後に、対応するビューを充電します。

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

私はあなたが学ぶことを願っています!そして、私の英語でごめんなさい!:-)

于 2015-02-12T13:51:58.023 に答える
0

ログアウト後、1つのページに「またね」などのメッセージが表示され、しばらくすると、そのページから目的のページにリダイレクトすると、2回目のヘッダーをリダイレクトするための以下のコードのような問題が解決する可能性があります( "Refresh3; url = home.php" );

于 2012-05-02T18:10:50.267 に答える
0

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

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

于 2012-05-03T04:36:56.180 に答える
0

私は以下があなたを助けるべきだと思います

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をロードします

于 2013-11-19T06:15:40.410 に答える