2010-11-19 12 views
1

ログインページを作成しています。私がログアウトすると、私はクッキーをクリアします。ログアウト後に戻るボタンを押すと、セッションが復元されます。どうすればセッション復元を回避できますか。ログアウトしたセッションは、戻るボタンによって復元されます。

+1

あなたはセッションが復元されることを考えさせる何? –

+0

設定したクッキーとは対照的に、セッションを追跡するためにフレームワークが使用しているセッションクッキーを削除してもよろしいですか? –

答えて

6

これはおそらく誤解です。

戻るボタンを押すと、ブラウザのページがキャッシュされている可能性が最も高いです。これはではありません。はあなたがまだログインしていることを意味します。

前のページを更新してみてください。ログインダイアログが表示されます。

このようにページが表示されないようにするには、hereがブラウザのキャッシュをオフにする方法です。

実際にログインしている場合は、何か問題があります。その場合、いくつかのコードを見る必要があります。

+0

キャッシュをクリアした後でも、ブラウザが情報の再送信を求めるメッセージが表示された後に復元されます。 – user513458

+2

@userああ、これは別のケースです。実際にはログイン情報が再送信されます。ユーザーをログインさせると(コンテンツをすぐに表示するのではなく)、ターゲットページにヘッダーをリダイレクトすることで、回避することができます。 –

+0

はいこれに対処するにはリダイレクト後ポストパターンを使うべきです –

2

問題の迅速かつ簡単な修正は、session_destroy php man pageで提供されています。

+0

phpでセッションを作成しないで、ログインしたデータをクッキー経由で削除することは可能ですか? – user513458

1

コメントから、ブラウザで[戻る]をクリックすると、ブラウザはPOSTデータを再送信するように求めるメッセージが表示されます。もちろん、これを行うと、ログインデータを再送信するだけですぐにユーザーをログインさせることができます。POSTデータを再送する迷惑なブラウザのプロンプトを回避し、ユーザーのログインを回避するソリューションは、 「リダイレクト後のポスト」パターン

あなたのログインフォームのPOSTターゲットを他のページ - ではなく、あなたのログインのようこそページなどにしてください。このターゲットページはログイン情報を処理し、承認、を実行し、ウェルカムページ(成功時)または認証に失敗した場合はログインページにリダイレクトをリダイレクトします。

ブラウザのプロンプトとに戻ってログインしているユーザーを避けることができます。本当にそれがより良いユーザー体験をもたらし、あなたが経験したような落とし穴を避けるように、すべてのフォームは、このパターンを実装する必要がありますこの方法です。

0

コードの下にお試しください。 ログアウトしたセッションは、戻るボタンの問題によって復元されました。

リンク:

http://www.codingslover.com/2015/01/How-to-resolved-when-Logged-out-sessions-get-restored-by-back-button.html

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
+0

codingsolver.comリンクは死んでいるように見えます。 – Jbecwar

関連する問題