その問題について多くの投稿がありますが、私はそれを修正できません。PHP でユーザーをログオフし、その後リダイレクトを行うために、Cookie を削除しようとしています。
$currentCookieParams = session_get_cookie_params();
session_set_cookie_params($currentCookieParams['lifetime'], '/', $currentCookieParams['domain'], $currentCookieParams['secure'], true);
session_name("PHPAUTH");
session_start();
$_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();
header("Location: http://localhost/Home/Index");
exit;
しかし、クッキーはまだそこにあります。リダイレクトを無効にすると、Cookie は正常に削除されます。ただし、リダイレクトでは、とにかく Cookie は削除されません。
その後、リダイレクトで Cookie が確実に削除されるようにするにはどうすればよいですか?
編集:
次のリクエストで、自分のコードが Cookie を再作成したようです。ユーザーがまだログオンしているかどうかを確認し、そうでない場合はログイン ページにリダイレクトします。
$currentCookieParams = session_get_cookie_params();
session_set_cookie_params($currentCookieParams['lifetime'], '/', $currentCookieParams['domain'], $currentCookieParams['secure'], true);
session_name("PHPAUTH");
session_start();
if (!array_key_exists('angemeldet', $_SESSION) || !$_SESSION['angemeldet'])
{
header("Location: http://localhost/Account/LogOn");
exit;
}
Cookie を再作成せずにこれを確認するにはどうすればよいですか? ばかげた質問かもしれませんが、私は現時点でかなり混乱しています...