当我想要删除Cookie时,我会尝试
unset($_COOKIE['hello']);
我在firefox的cookie浏览器中看到cookie仍然存在。我怎么才能真正去掉饼干呢?
当我想要删除Cookie时,我会尝试
unset($_COOKIE['hello']);
我在firefox的cookie浏览器中看到cookie仍然存在。我怎么才能真正去掉饼干呢?
当前回答
很简单!
setcookie("cookiename", "cookievalue", 1);
其他回答
将值设置为"",过期日期设置为昨天(或过去的任何日期)
setcookie("hello", "", time()-3600);
然后,cookie将在下次页面加载时过期。
只要将过期日期设置为一小时前,如果你想“删除”cookie,就像这样:
setcookie ("TestCookie", "", time() - 3600);
or
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
来源:http://www.php.net/manual/en/function.setcookie.php
你应该使用filter_input()函数来处理访问者可以输入/操作的所有全局变量,如下所示:
$visitors_ip = filter_input(INPUT_COOKIE, 'id');
你可以在这里阅读更多:http://www.php.net/manual/en/function.filter-input.php和这里:http://www.w3schools.com/php/func_filter_input.asp
大多数人都忘记了这只能在本地机器上工作。 在某个域上,您将需要类似此示例的模式。
setcookie("example_cookie", 'password', time()-3600, "/", $_SERVER['SERVER_NAME']);
我在代码中遇到了同样的问题,并发现这是一个cookie路径问题。查看这个堆栈溢出的帖子:不能删除php集cookie
我使用路径值“/”设置了cookie,但当我试图清除它时,它没有任何路径值,所以它没有清除。这里有一个有效的例子:
设置cookie:
$cookiePath = "/";
$cookieExpire = time()+(60*60*24);//one day -> seconds*minutes*hours
setcookie("CookieName",$cookieValue,$cookieExpire,$cookiePath);
清除cookie:
setcookie("cookieName","", time()-3600, $cookiePath);
unset ($_COOKIE['cookieName']);
希望这能有所帮助。
很简单!
setcookie("cookiename", "cookievalue", 1);