1

私のアプリケーションには3つのWebページがあります。1.)ログインページ。2.)ウェルカムページ3.)ログアウトページ

PHPセッションオブジェクトを使用してセッションを管理しました。私のアプリケーションでは、ログインおよびログアウト機能が正しく機能しています。

ここでの問題は次のとおりです。ユーザーがlogout.phpページからブラウザの戻るボタンをクリックするとログアウトが成功した後、再びwelcome.phpページに到達しますが、正常にログアウトします。しかし、ページの有効期限が切れているか、welcome.phpページに戻ってはいけません。

前もって感謝します。

4

4 に答える 4

3

これは実際には少し注意が必要ですが、(私が知る限り)これはキャッシュと関係があります。

PHPを介していくつかのヘッダーを追加することで、この特定の問題を回避することができました。

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache"); 

もちろん、これらはユーザーがログインしているときにのみ設定する必要があります。通常、キャッシュは適切であると見なされるためです。

于 2012-07-09T21:36:24.573 に答える
0

キャッシュからページを更新するのではなく、強制的にページを更新する必要があります。

さらに、異なるブラウザがこれを異なる方法で処理します。参照ページのドキュメントに2番目のセクションを追加してみてください

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD>
于 2012-07-09T21:34:43.263 に答える
0

ウェルカムページで認証を確認してみませんか。

例:

if($_SESSION['authenticated'] = true) include('welcome.php') else include('login.php)

もう1つの優れたアプリケーションは、ヘッダーを使用してリダイレクトすることです。 header('Location: ' (LINK) );

于 2012-07-09T21:55:35.857 に答える
0

CakePHP 2を使用している場合は、次のこともできます。

$this->response->disableCache();

それは基本的にRepoxによって与えられた答えと同じことをします

于 2012-07-10T08:10:36.737 に答える