一个php网页创建的cookie可以被另一个php网页删除吗?

时间:2013-11-18 16:50:32

标签: php cookies

我创建了一个创建cookie的php网页。该网页将用户重定向到另一个(第二个)php网页。在第二个网页上,我正在尝试删除第一页创建的cookie。但cookie不会被删除。第二个网页显示错误,如“无法修改标题信息”

我删除该cookie的PHP代码格式如下:

if(isset($_COOKIE['cookieName']))
{
setCookie('cookieName','values',time()-3600,'/','example@domain.com',0);
}

3 个答案:

答案 0 :(得分:0)

我希望您使用 unset()

这样做

if(isset($_COOKIE['cookieName']))
{
unset($_COOKIE['cookieName']));
}

答案 1 :(得分:0)

设置cookie在HTTP标头中完成。此标头在页面的实际内容之前发送。因此,您只能(取消)设置尚未发送任何输出的cookie。

setcookie documentation

中也说明了这一点
  

与其他标题一样,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;。