你好,因为我试图去抓一个问题而疯了。
我无法删除将在index.php上设置的cookie:
$a = 'text';
setcookie('name_of_cookie', $a, time()+60*60*24*365);
在page-php上我可以调用该cookie,内容就像$ a。我试图在page.php上删除那种不同的方式:
setcookie('name_of_cookie', FALSE, time()-3600);
我还找到了一个版本,我只将它设置为:
setcookie('name_of_cookie');
正如我在浏览器的设置中看到的那样设置另一个具有相同名称的cookie。新cookie没有内容 - 当然,没有声明内容。
由于服务器的位置,我也试图在过去设置更高的时间,但这也不起作用。即使尝试将时间设置为1
也不起作用。
我几次检查了这个名字的拼写,没有来自不同名字的失败。
如果有人能说出我做错了什么,我会很高兴的吗?感谢。
答案 0 :(得分:6)
设置Cookie时非常具体,如何设置。 始终设置域名(可以从$ _SERVER ['SERVER_NAME'])和路径(我通常设置为“/”)中获取。如果你不一致,某些东西可以采取“聪明”的主动性并打破你的逻辑。当你在JS中设置cookie并尝试从PHP中删除它们时(或者反过来),它经常发生。您可能有多个具有相同名称但不同子域或路径的cookie。
例如,您可以像这样设置Cookie:
setcookie( 'Foo', 'Bar', time() + 3600, '/', $_SERVER['SERVER_NAME'] );
你这样解开他们:
setcookie( 'Foo', '', time() - 999999, '/', $_SERVER['SERVER_NAME'] );
缺少最后两个参数将使您处于目前的状态。
答案 1 :(得分:1)
删除每个Cookie,如下所示。
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, '/');
}
}
答案 2 :(得分:0)
在设置cookie时始终设置路径,否则它不会破坏