重新启动浏览器后,我在 codeigniter 中设置的 cookie 将被删除。我正在设置一个 cookie,如下所示:
$test_cookie = array(
'name'=>'test',
'value'=> 'test',
'expire'=> time() + 60*60*24*14
);
$this->input->set_cookie($test_cookie);
print_r($test_cookie)
返回:
Array ( [name] => test [value] => test [expire] => 1309943188 )
现在我可以打印 cookie 以确保 cookie 已设置:
$test_cookie= $this->input->cookie('test');
echo "<b> Cookie value: </b>". $test_cookie;
cookie 正确打印值。
但是,如果我重新启动浏览器,我将不再获得 cookie 值。我尝试过多种浏览器。使用var_dump
,我得到:bool(false)
为什么浏览器重新启动时 cookie 会被删除?
谢谢。
最佳答案
CodeIgniter 文档表示 expires
值已添加到当前时间。因此,您的情况下的 expires
值实际上是 time() + time() + 60*60*24*14
。这可能超出 32 位整数限制并变成负值。这反过来会产生一个临时 cookie,该 cookie 在关闭浏览器时会被删除。
$test_cookie = array(
'name'=>'test',
'value'=> 'test',
'expire'=> 60*60*24*14
);
应该可以工作。我想。
关于php - 重启浏览器后 Cookie 被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437632/