我创建了一个创建cookie的php网页。该网页将用户重定向到另一个(第二个)php网页。在第二个网页上,我正在尝试删除第一页创建的cookie。但cookie不会被删除。第二个网页显示错误,如“无法修改标题信息”
我删除该cookie的PHP代码格式如下:
if(isset($_COOKIE['cookieName']))
{
setCookie('cookieName','values',time()-3600,'/','example@domain.com',0);
}
答案 0 :(得分:0)
我希望您使用 unset()
这样做
if(isset($_COOKIE['cookieName']))
{
unset($_COOKIE['cookieName']));
}
答案 1 :(得分:0)
设置cookie在HTTP标头中完成。此标头在页面的实际内容之前发送。因此,您只能(取消)设置尚未发送任何输出的cookie。
中也说明了这一点与其他标题一样,Cookie必须在您的任何输出之前发送 脚本(这是一个协议限制)。这要求你放置 在任何输出之前调用此函数,包括和 标签以及任何空格。
例如:
<?php
if (isset($_COOKIE['cookieName'])) {
unset($_COOKIE['cookieName']);
setcookie("cookieName", "", time()-3600);
}
?>
<html>
....
</html>
(另请参阅问题Remove a cookie。)
答案 2 :(得分:0)
你能试试吗,
unset($_COOKIE['cookieName']);
setcookie('cookieName', null, -1, '/');
<强>路径:强> 服务器上可以使用cookie的路径。如果设置为&#39; /&#39;,则Cookie将在整个域中可用。如果设置为&#39; / foo /&#39;,则cookie只能在/ foo /目录和所有子目录中使用,例如/ foo / bar / of domain。默认值是设置cookie的当前目录。
<强>域强> Cookie可用的域。将域名设置为&#39; www.example.com&#39;将使www子域和更高子域中的cookie可用。 Cookie可用于较低域名,例如&#39; example.com&#39;将可用于更高的子域名,例如www.example.com&#39;。