main.php に問題があります。これらのコードを使用してセッション変数を取得します
<?php
if ($_POST['login'])
{$_SESSION['user'] = $_POST['user'];
$_SESSION['pass'] = $_POST['pass'];}
?>
ログアウトボタンをクリックしたとき
<input type="submit" name="logout" value="Log out" formaction="logout.php"
formmethod="POST" />
私のlogout.phpにはこれらのコードが含まれています
<?php
error_reporting(0);
unset($_SESSION['user']);
unset($_SESSION['pass']);
session_unset();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
$_POST = array();
echo " <script> window.location.href = '../login.php'; </script>";
exit();
?>
login.php にリダイレクトした後、ブラウザーの [戻る] ボタンを押すと、$_POST 変数がまだ認識されます。これが、私のセッション変数が $_POST 変数と再び等しい理由です。しかし、main.php にいるときに、ブラウザのアドレス バーを押して ENTER を押すと、main.php がリロードされます。次に、ログアウトした後、ログアウトしようとします。もう一度戻るボタンを押すと、$_POST 変数はもう存在しません (main.php にアクセスできないため)。それはなぜですか、プロジェクトから正常にログアウトできるように、URLを再入力する必要があります(更新しないでください)。