0

私はphp/ajaxでAPIを使用しています.すべてのページに、一定時間後にユーザーが非アクティブであるためにログアウトされていないかどうかのテストが含まれています. 動作しますが、時々問題が発生します。ストーリーは次のとおりです。

index.php というファイルが 1 つあります。Index.php には div があります。「div」と名付けましょう。また、いくつかのボタンがあります。「新規」と「変更」という名前にしましょう。ボタンを押すと、ファイルnew.phpとmodify.phpの本体がajaxメソッドを介して「div」にロードされます。ここまでは順調ですね。ただし、ユーザーが一定時間非アクティブになると、ログアウトする必要があります。そして、そうです。しかし残念なことに、なぜそれが起こっているのかは明らかです.ログアウトページはindex.phpではなく、「div」の本体に出力されます. 分かりやすいです。「新規」ボタンを押すと、new.php に移動します。New.php は、ログインしているかどうかを確認します。ログインしていないため、logout.page にリダイレクトされるため、new.php はログアウト ページになり、「div」の本体になります。ここに質問があります: ページ全体をリダイレクトする方法 (index. php) ログアウトして div に印刷しない場合は、ログアウト ページに移動します。ajaxを使用しているため、「新規」ボタンを押してもindex.phpが更新されないことに注意してください。それは私のdivをリフレッシュするだけです。それは可能ですか?

4

3 に答える 3

2

javascript リダイレクトを使用するのはどうですか? 「ハッカー」ユーザーはログインしないと権限がないため、気にする必要はありません。通常のユーザーは次のようにリダイレクトしてください。

<script language="JavaScript">document.location="/logout.php";</script>
于 2012-04-27T21:17:10.523 に答える
2

でリダイレクトを行わないでください。new.php代わりに、ユーザーがログアウトしたときに PHP スクリプトが特定の値を返すようにし、AJAX 呼び出しでその出力を分析し、必要に応じて JavaScript を介してリダイレクトを行います。

言い換えると:

  • new.php成功した場合は、通常の操作を行います
  • new.php「認証失敗」ステータスが返された場合は、リダイレクトを行います

最善の方法は、AJAX 応答を JSON オブジェクトにカプセル化することです。これにより、JavaScript 側で簡単に分析できるように、データと応答コードの両方を取得できます。

于 2012-04-27T21:17:35.227 に答える
1

これを試してください - "3000" を任意のミリ秒数に変更します (たとえば、15 分の場合は "900000" に設定します)。

<script>

(function(){
  setTimeout( function(){
      window.location = "www.yourawesomesite.com/logout";
    }
  ,3000)
})();

</script>
于 2012-04-27T21:19:25.503 に答える