有很多关于这个问题的帖子,但我无法解决它。我尝试删除 cookie 以便在 PHP 中注销用户并在之后进行重定向:
$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 的情况下检查这一点?也许是一个愚蠢的问题,但我现在很困惑......