3 つのインターフェース logon.php / checklogon.php /detail.php / logout.php があります
logon.php - session_start() およびログインフォームなどを含むその他の静的 HTML ログインボタンをクリックした後、checklogon.php にジャンプします
checklogon.php - データベースに接続し、ユーザー情報を返します。成功すると $_SESSION['user'] = ユーザー関連情報となり、detail.php にジャンプします。
1 | $user = UserBusiness::GetUser( $_POST [ "username" ], $_POST [ "password" ]); if ( $user == null){ header( "location: /index.php" ); exit ;} $_SESSION [ 'user' ] = $user ;
|
ログイン後にコピー
詳細.php - 上記には、クリック後に logout.php を呼び出すログアウト リンクが含まれています。
logout.php -
1 | <?php session_destroy(); header( "Cache-Control: private, must-revalidate, no-store" ); header( "Pragma: no-cache" ); header( "Expires: Sat, 26 Aug 1997 05:00:00 UTC" ); header( "location: /logon.php" ); exit ();?>
|
ログイン後にコピー
ログアウト ボタンをクリックすると、ページはログイン インターフェイスに移動します。 , ただし、ブラウザ (IE 8/Firefox) の戻るボタンを押した後、以前の詳細インターフェイスが再び表示されます。解決方法を教えてください。
戻るボタンをクリックすると、detail.php内のコードは実行されず、キャッシュされたdetail.phpが表示されるはずです。
ディスカッション (解決策) への返信
見てみるには、detail.php の検証部分を投稿する必要があります
1 | <?php echo ( '<a href="/Logout.php">Logout</a>' );?>
|
ログイン後にコピー
ログイン後にコピー
見てみるには、detail.php の検証部分を投稿する必要があります
れー
これですか?
セッションが存在するかどうかを確認するためのコードはありません。セッションを破棄しても、何の役に立ちますか?
ログイン PHP を変更して、次のコードを追加します。
1 | <?php echo ( '<a href="/Logout.php">Logout</a>' );?>
|
ログイン後にコピー
ログイン後にコピー
checklogin.php を変更するか、新しい check.php を作成して、ユーザーが存在するかどうかを確認するコードを追加します。
ログイン ページと終了ページを除く他のページのファイル ヘッダーに上記のコードを追加します。