Cookie在重新启动浏览器时被删除

时间:2011-06-22 09:21:26

标签: php codeigniter cookies setcookie

我在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?

感谢。

1 个答案:

答案 0 :(得分:4)

CodeIgniter文档说明expires值已添加到当前时间。因此,您案例中的expires值有效time() + time() + 60*60*24*14。这可能超出32位整数限制并变为负值。这反过来将导致在关闭浏览器时删除的临时cookie。

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

应该有效。我想。