2011-05-31 86 views
7

我在PHP中设置cookie通过这个呼叫无法删除PHP设置cookie的

setcookie('alert_msg', 'you have the add badge'); 

我曾尝试取消设置这种方式

setcookie('alert_msg', ''); 
setcookie('alert_msg', false); 
setcookie('alert_msg', false, 1); 
setcookie('alert_msg', false, time()-3600); 
setcookie('alert_msg', '', 1, '/'); 

,它仍然不会取消设置$ _COOKIE ['alert_msg']中的cookie值。

我已经在Firefox和Chrome尝试

代码示例:

if (isset($_COOKIE['alert_msg'])) { 
    $this->set('alert_msg', $_COOKIE['alert_msg']); 
    unset($_COOKIE['alert_msg']); 
    setcookie('alert_msg', '', 1, '/'); 
} 
+3

检出cookie路径。你是否在'dir/file'中设置cookie并试图在'dir2/file'中取消设置? – 2011-05-31 11:53:44

+0

@Shakti - 我正在使用Cakephp。我将它设置在一个位于/ app/controllers的控制器中,并试图在位于/ app中的app_controller中解除它,这是否有所作为? – going 2011-05-31 11:58:20

+0

@Shakti - 我看你是对的,你可以请你添加你的评论作为答案,我可以将其标记为我接受的答案。 – going 2011-05-31 12:00:25

回答

21

结帐的Cookie路径。

由于您没有将path参数传递给setcookie函数,因此在这种情况下,cookie将仅设置为当前目录并且可以使用,并且只能从该目录中取消设置。

可能的解决方案是将path的值作为/。所以这个cookie可以被应用程序的任何部分使用和取消设置。

+0

完美地工作 – spyke01 2014-01-31 20:21:52

+0

坦克。你节省了我的时间 – IndieBoy 2015-11-05 06:17:19