我已阅读各种主题,但似乎没有任何解决方案可行。
我有两个PHP页面:
cookieson.php
<?php session_start();
$future = time()+60*60*24*30*12;
setcookie('CookiesAgreed', 'yes', $future, '/');
?>
cookiesoff.php
<?php session_start();
$past = time()-9999999999999999;
setcookie('CookiesAgreed', null, $past, '/');
?>
cookieson.php正确地将Cookie“CookiesAgreed”设置为大约一年后到期。
cookiesoff.php应该完全清除“CookiesAgreed”cookie,但似乎没有做任何事情 - 价值不会改变(根据Firefox的Cookies列表),到期时间不会改变,而且cookie没有t删除。偶尔会创建一个全新的cookie(同样,根据Firefox),具有相同的名称,价值和到期日期。
我做错了什么?!
(您可以在http://www.rugbyfiles.com/cookieson.php和http://www.rugbyfiles.com/cookiesoff.php看到)
答案 0 :(得分:7)
这会耗尽堆栈并溢出:
$past = time()-9999999999999999;
相反,这样做:
$past = time()-60*60*24*30*12;
时间变量只能包含从0
到4294967296
的值。当你给出如此长的负值时,它会从堆栈中消失。
答案 1 :(得分:0)
setcookie("CookiesAgreed","",time()-24*60*60,"/");