在PHP中删除JavaScript会话Cookie

问题描述:

浏览器关闭时,“浏览器”会话cookie被删除。 在JavaScript中设置“浏览器”会话cookie时,不包含过期日期。在PHP中删除JavaScript会话Cookie

document.cookie= "MyCookieName = MyValue; path=/"; 

我想在php中删除一个“浏览器”会话cookie。 我已经试过这样:

setcookie('MyCookieName','', time() - 3600,'/'); 

不幸的是,该cookie没有被清除。

+0

Cookie是否位于同一个域? – 2013-02-20 21:49:47

+0

它看起来是这样的 – 2013-02-20 21:49:57

+0

您确定它没有被删除,刷新页面吗? – 2013-02-20 21:50:24

首先,我不认为它有什么区别如何创建cookie(JS或PHP)。

您不能强制浏览器删除cookie文件。但是,您可以删除Cookie的内容并使其到期。上面的代码就是你正在做的事情。我可能会稍微调整它:

setcookie('MyCookieName', '', 1, '/'); // no need to calculate one hour ago. 

假设cookie的有一定的价值,你可以检查你的代码生效:

if ($_COOKIE["MyCookieName"] == '') { 
    echo 'cookie was deleted'; 
} 

文件仍然不会被删除,直到用户虽然关闭了浏览器。

还有一件事要检查以上不起作用的是cookie路径(setcookie()中的第四个参数,可能只设置cookie,例如对于/blog,您应该能够推断出这一点通过使用Safari webkit开发者工具或类似的东西来检查cookie。