私のウェブサイトには、page1.php、page2.php、page3.php、page4.php、logout.php の 5 つのページがあります。
page4.php にはログイン フォームがあり、その上には、ログイン フォームからのユーザー入力をキャッチしてセッションに入れ、(header(' を使用して) 元のサイトのページにユーザーをリダイレクトするための php スクリプトがあります。 location: '.$_SESSION['page']);) 、または彼がどのページからも来なかった場合、つまり、彼が最初に訪れたページが page4.php である場合は、彼を page1.php にリダイレクトします。一番上には session_start(); があります。
Page1.php 、 page2.php および page3.php コード:
<?php
session_start();
$_SESSION['page'] = $_SERVER['PHP_SELF'];
// also have a link to click to go to page4.php if not logged in and a link to
//logout.php
?>
logout.php のコード:
<?php
session_start();
session_destroy();
header('location: '.$_SESSION['page']);
?>
問題は、ユーザーがログアウト リンク logout.php をクリックすると、すべてのセッションが破棄され、元のページにリダイレクトされ、再び $_SESSION['page'] が設定され、すべてのページが閉じられても破棄されないことです。次回、ユーザーが最初に page4.php にアクセスしてログインすると、前回サイトにアクセスしたときのページにリダイレクトされます。ユーザーがすべてのページを閉じた場合 (サイトページの複数のタブが開いていた場合)、 page4.php に初めてアクセスすると、page1.php にリダイレクトされます。サイトのすべてのページが閉じられている場合にのみセッションを破棄するにはどうすればよいですか?