我有一个名为MVCID的cookie,它的值是一些生成的哈希值。 当我写这个
setcookie("MVCID","", time()-60*60*24);
并加载页面,不仅没有删除cookie的内容,而且它也不会死亡。
可能出现什么问题?这不是第一次发生这种情况。
ps:我也在空白页面上尝试这个,没有其他代码,但是它仍然不会死。
答案 0 :(得分:1)
尝试传递“/”作为第四个参数 - 路径。
答案 1 :(得分:0)
您是否在输出任何HTML之前调用此函数?这是一个众所周知的问题,因为cookie必须出现在HTTP头中。
您可能还想检查客户端的时间。即使您设置为在一天前过期,时钟偏差可能会更大(如果时间设置不正确)。
我更喜欢填充所有参数,而不是依赖默认值(可以根据很多事情进行更改)。
此外,您可能想查看返回代码,虽然我不知道它是如何失败的,例如:
<?php
$ret = setcookie("MVCID","", time()-60*60*24);
?>
<html>
<head></head>
<body>
Hello<br>
<pre>
<?php
print_r ($ret);
?>
</pre>
</body>
</html>
如果做不到这一点,您可能需要了解线路级别的情况。换句话说,检查HTTP响应以确保HTTP标头中有Set-Cookie
并检查与其一起传递的实际值。
最后一个尝试的技巧:完全删除cookie并退出浏览器(其中一些缓存在内存中)。然后再试一次。如果PHP setcookie无法正常工作,那么将不会创建任何cookie - 您所拥有的未被更改或过期的cookie可能会从之前成功的代码变体中遗留下来。
答案 2 :(得分:0)