Cookie-为什么Cookie在使用PHP代码删除后显示在浏览器中

Cookie-为什么Cookie在使用PHP代码删除后显示在浏览器中,php,cookies,session-cookies,Php,Cookies,Session Cookies,为什么浏览器中会显示cookie值?即使使用PHP代码删除了cookie,我还是使用FireFox“查看Cookies插件”查看cookie值。只有手动删除或清除我的浏览器cookies后,它才会消失。我问这个问题是因为我的工作只有在手动从浏览器中删除cookie后才能工作,如果我在PHP代码中取消设置cookie并运行,它将不工作,我将通过将其过期日期设置为过去值来取消设置cookie值。示例: setcookie ("myCookie", "", time() - 3600, "/", ".

为什么浏览器中会显示cookie值?即使使用PHP代码删除了cookie,我还是使用FireFox“查看Cookies插件”查看cookie值。只有手动删除或清除我的浏览器cookies后,它才会消失。我问这个问题是因为我的工作只有在手动从浏览器中删除cookie后才能工作,如果我在PHP代码中取消设置cookie并运行,它将不工作,我将通过将其过期日期设置为过去值来取消设置cookie值。示例:

setcookie ("myCookie", "", time() - 3600, "/", ".example.com");
我用于设置cookie的代码:

setcookie ('Event', '', time() - 3600, '/', '.example.com');
setcookie('Event', '-1-1301223453%7C9de8f7c08bf2be19c125f86ced33a0c2%7C1301050653%7C-1%7C1301223453', '', '/', '.example.com', 0);
我用于取消设置cookie的代码:

setcookie ('Event', '', time() - 3600, '/', '.example.com');
setcookie('Event', '-1-1301223453%7C9de8f7c08bf2be19c125f86ced33a0c2%7C1301050653%7C-1%7C1301223453', '', '/', '.example.com', 0);
但若我在取消设置后打印cookie值,它将为空(无),但它将显示在浏览器中


请任何人帮忙

使用
setcookie(“mycokie”)删除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, '/');
    }
}

这完全基于您在中查看的浏览器设置,并且您要求浏览器仍显示cookie。这是真的,浏览器仍然显示cookie,但当您在PHP中检查cookie时,您会放松,因为cookie未设置

print_r($_COOKIE);
显示活动cookies


请记住,当您从浏览器工具中清除cookie时,cookie将被删除,但当您从PHP中取消设置时,cookie将被设置为过去未从浏览器历史记录中删除的时间。

这可能有多种原因。首先,检查cookie是否已设置。然后确保它使用与最初设置cookie时相同的参数(过期除外)。对于expiration参数,使用一个过去很长的值(如果您的服务器关闭了几个小时,则一小时可能太少):


下面是一个关于用php删除cookie的简单教程 首先,我们设置cookie值和过期日期

setcookie('test', 'test', time() + 3600);
访问该页面,您将看到cookie“test”已成功创建

然后,我们将php代码更改为删除cookie“test”,只需为其设置一个传递的日期值

setcookie('test', 'test', time() - 3600);
再次访问该页面,您将发现cookie“test”已消失

顺便说一句:我使用FireCookie扩展来检查cookie值


希望这个简单的教程能对您有所帮助。

向我们展示您用来取消设置cookie和设置cookie的代码。您检查过系统时间了吗?谢谢!!。我用于设置cookie的代码:setcookie('Event','',time()-3600,'/','.example.com');我用于取消设置cookie的代码:setcookie('Event','-1-1301223453%7C9de8f7c08bf2be19c125f86ced33a0c2%7C1301050653%7C-1%7C1301223453',''/','.example.com',0);但如果我在取消设置后打印cookie值,它将为空(无),但它将在浏览器中显示为什么不使用
$\u cookie
?根据php.net:如果cookie名称使用数组表示法,例如:user[username],那么php将自动在$\u cookie中创建相应的数组。请改用$\u服务器['HTTP\U COOKIE'],因为它镜像了实际的HTTP请求头。谢谢回复!!!。如果我在取消设置后打印cookie值,它将为空(无),但从浏览器中删除cookie后,我的工作将正常工作,您能建议任何解决方案吗。