延迟cookie更新

时间:2014-04-17 19:11:01

标签: php cookies

我正在使用这个基本的cookie脚本。

Cookie信息更新似乎有滞后。

以下是代码:

$year = time() + (1 * 365 * 24 * 60 * 60); // this adds one year to the current time,  for the cookie expiration
$time = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s').'- 2 days'));
setcookie("lastonline", $time, $year);

echo '<p><p><p>cookie set to '.$time;

$cookietime = $_COOKIE['lastonline'];

echo '<p>Cookie says '.$cookietime;

我的问题是,我运行此脚本时将$ time var设置为 - 1天,然后将此更改为 - 2天,报告称&#39; cookie设置为(2天前) - Cookie说(1天)前)。

如果我第二次刷新脚本,它会全部出现,即&#39; cookie设置为(2天前) - Cokie说(2天前),但为什么需要延迟或第二次刷新?

1 个答案:

答案 0 :(得分:1)

请注意,setcookie()调用请求客户端存储cookie。该cookie仅在发送到服务器的下一个请求的上下文中发送回服务器,同时您尝试在执行setcookie()的同一脚本内评估它。这不起作用,因为在该脚本运行中,您正在评估由之前的请求填充到服务器的$_COOKIE存储,该服务仅触发您的脚本运行!

这解释了一次性重载差异。

这不是一个错误或任何东西,你的逻辑是错误的。