我已经阅读了各种各样的线程,但没有一个解决方案似乎有效.
我有两个PHP页面:
cookieson.php
<?php session_start();
$future = time()+60*60*24*30*12;
setcookie('CookiesAgreed', 'yes', $future, '/');
?>
Run Code Online (Sandbox Code Playgroud)
cookiesoff.php
<?php session_start();
$past = time()-9999999999999999;
setcookie('CookiesAgreed', null, $past, '/');
?>
Run Code Online (Sandbox Code Playgroud)
cookieson.php正确设置cookie"CookiesAgreed",到期约一年.
cookiesoff.php应该完全清除"CookiesAgreed"cookie,但似乎没有做任何事情 - 值不会改变(根据Firefox的Cookies列表),到期不会改变,cookie也不会删除.偶尔会创建一个全新的cookie(同样,根据Firefox),具有相同的名称,值和到期日期.
我究竟做错了什么?!
(你可以在http://www.rugbyfiles.com/cookieson.php和http://www.rugbyfiles.com/cookiesoff.php上看到)
这没有堆栈和溢出:
$past = time()-9999999999999999;
Run Code Online (Sandbox Code Playgroud)
相反,这样做:
$past = time()-60*60*24*30*12;
Run Code Online (Sandbox Code Playgroud)
时间变量可以仅持有价值0来4294967296.当你给出这么长的负值时,它会从堆栈中消失.