关于该问题有很多帖子,但我无法修复它。我试着以注销在PHP用户删除一个cookie,做一个重定向算账: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随后被重定向删除?
编辑:
好像我自己的代码重新创建的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的情况下检查此问题?也许一个愚蠢的问题,但我很困惑的时刻...
很可能会在下一个请求中再次设置会话cookie? – Gerry 2013-04-07 11:04:26
如何在(我猜是index.php)http:// localhost/Home/Index的文件看起来像? – bestprogrammerintheworld 2013-04-07 11:38:50
localhost/Home/Index不仅是一个文件,它是MVC引擎的一部分。控制器Home的操作索引视图在“布局”页面中呈现。但我用普通的网址进行了测试,问题仍然存在。 – tklepzig 2013-04-07 12:01:05