我正在尝试删除Cookie。
我正在使用setcookie("PHPSESSID", "", time() - 6400);
删除Cookie。
但是并没有完全删除。在查看firebug时,在“Response Headers”下,cookie被删除。但是,在“请求标头”下,cookie不会被删除(这会影响代码行为)。
我是否也删除(或修改或访问)其他cookie?
谢谢!
答案 0 :(得分:3)
我的退出代码出现了这样的问题,经过努力和研究,我自己终于想出来并用javascript来解决问题。
您可以使用下面的脚本轻松地在客户端执行此操作, 您可能需要更改路径和主机的值:
document.cookie = "PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;host=localhost";
答案 1 :(得分:1)
使用setcookie("PHPSESSID", "", time() - 6400);
就像2小时前一样过期了,
尝试使用setcookie("PHPSESSID", "", 1);
在1970年1月1日的时期到期。
如果不起作用,您可以尝试添加此setcookie("PHPSESSID","",time()-6400,"/");
你可以从http://www.php.net/manual/en/function.setcookie.php#73484尝试这个例子来删除所有的cookie,但我知道这似乎是某种知道的超级英雄......
// unset cookies
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time()-1000);
setcookie($name, '', time()-1000, '/');
}
}
答案 2 :(得分:1)
您可能还想通过添加
取消设置$ _COOKIE变量unset($_COOKIE['PHPSESSID']);
在下一行。然而,这只会影响当前加载的页面。
答案 3 :(得分:0)
此代码可以解决此问题:
session_start(); // initialize session
session_destroy(); // destroy session
setcookie("PHPSESSID","",time()-3600,"/"); // delete session cookie
答案 4 :(得分:-1)