0

我已经阅读了各种线程,但似乎没有一个解决方案有效。

我有两个 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 也没有删除。有时会创建一个具有相同名称、值和到期日期的全新 cookie(同样,根据 Firefox)。

我究竟做错了什么?!

(您可以在http://www.rugbyfiles.com/cookieson.phphttp://www.rugbyfiles.com/cookiesoff.php看到)

4

2 回答 2

7

这超出了堆栈并溢出:

$past = time()-9999999999999999;

相反,这样做:

$past = time()-60*60*24*30*12;

time 变量只能保存从0到 的值4294967296。当你给出这么长的负值时,它就会出栈。

于 2013-02-15T11:24:25.383 回答
0
setcookie("CookiesAgreed","",time()-24*60*60,"/");
于 2015-02-24T12:47:33.540 回答