2012-03-13 10 views
1

私はPHPでセッションタイムアウトをしています。私はPHPを からajax経由で呼び出しています。 X秒間使用しないと、ユーザ がリクエストを送信すると、セッションがすでに期限切れになっているため、ログインページにリダイレクトされます。自動セッションタイムアウトがPHPで

セッションタイムアウトメッセージをブラウザに自動的に送り返すにはどうすればいいですか? リクエストトリガーを待っていませんか?

同様に、時間を確認するためにバックグラウンドでスレッドを実行する必要があります。 いつもですか?あなたはアイディアを持っていますか?

ありがとうございます。

答えて

2

ajax経由でサーバーからブラウザに要求を送信することは、long pollingまたは "comet"と呼ばれます。これは実績のある技術ですが、今は落とし穴がありません。

1つの場合、接続は各ユーザーに対して開いたままにする必要があります。それはオーバーヘッドが多いので、NodeJSのようなもので済むはずです。たとえそうであっても、長い投票は20秒ごとにリセットされる必要があり、その結果、気まぐれなコードになります。より新しいブラウザでは、WebSocketが導入されていますが、フォールバックメカニズムを備えたフレームワークが必要です。問題は、アプリケーションにとって価値があるかどうかです。

私があなたの状況で行うことは、JavaScriptで同じタイムアウトメカニズムを実装することです。こうすることで、JavaScriptでセッションのタイムアウトが発生したときにユーザーは素晴らしいメッセージを受け取り、何らかの理由でユーザーがブラウザをバイパスした場合にサーバーがタイムアウトを強制します。

+1

私は同意します、これは間違いなく正しい方向です。 JavaScriptのsetTimeoutを使用して、サーバー側で行っていることと同様のロジックに従うことができます。 – mrdc

関連する問題