我在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?
感谢。
答案 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
);
应该有效。我想。