1

我在 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 会被删除?

谢谢。

4

1 回答 1

4

CodeIgniter 文档说该expires值被添加到当前时间。所以有效地expires在你的情况下的价值是time() + time() + 60*60*24*14。这可能超出 32 位整数限制并变成负值。这反过来会导致一个临时 cookie 在关闭浏览器时被删除。

$test_cookie = array(
  'name'=>'test',
  'value'=> 'test',
  'expire'=> 60*60*24*14
);

应该管用。我认为。

于 2011-06-22T09:48:22.523 回答