为什么cookie值在浏览器中显示,即使在使用PHP代码删除后,我也会使用FireFox“View Cookies addon”查看cookie值。只有在删除或手动清除浏览器cookie后,它才会消失。我问这个问题是因为我的工作只有在手动删除浏览器中的cookie后才能工作,如果我在PHP代码中取消设置cookie并运行,它将无法正常工作,我通过设置过期值的过期日期来设置cookie值。例如:
setcookie ("myCookie", "", time() - 3600, "/", ".example.com");
我用于设置cookie的代码:
setcookie ('Event', '', time() - 3600, '/', '.example.com');
我用于取消设置Cookie的代码:
setcookie('Event', '-1-1301223453%7C9de8f7c08bf2be19c125f86ced33a0c2%7C1301050653%7C-1%7C1301223453', '', '/', '.example.com', 0);
但如果我在取消设置后打印cookie值,它将为空白(无),但会在浏览器中显示
请任何人帮忙!!
答案 0 :(得分:2)
这完全基于您正在查看的浏览器设置,并且您要求浏览器仍在显示Cookie。这是真正的浏览器仍然显示cookie但你在PHP中检查它时会放松,cookie没有设置。
print_r($_COOKIE);
显示活动Cookie。
请记住,当您从浏览器工具中清除Cookie时,Cookie将被删除,但是当您从PHP取消设置时,它们将被设置为过去的时间,而不会从浏览器历史记录中删除。
答案 1 :(得分:0)
使用setcookie("myCookie");
答案 2 :(得分:0)
尝试这种方法怎么样?
// 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, '/');
}
}
答案 3 :(得分:0)
这可能有各种原因。首先,检查cookie是否完全设置。然后确保它使用与最初设置cookie时相同的参数(到期时间除外)。对于到期参数,请使用过去肯定很长的值(如果服务器的时间在几个小时后关闭,则一小时可能会太少):
setcookie($cookieName, 'deleted', 1, $cookiePath, $cookieDomain);
答案 4 :(得分:0)
这是一个关于删除cookie的简单教程 首先我们设置cookie值和到期日期。
setcookie('test', 'test', time() + 3600);
访问该页面,您将看到cookie'test'已成功创建
然后,我们更改php代码以删除cookie'test',只为它设置一个传递的日期值
setcookie('test', 'test', time() - 3600);
再次访问该页面,你会发现cookie'test'已经消失了
btw:我使用fire cookie扩展来检查cookie值。
希望这个简单的教程可以帮助你。