2011-06-22 55 views
1

在重新启动浏览器后,我在codeigniter中设置的cookie被删除。我设置了一个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

浏览器中的某些设置是否在关机时自动删除cookie?每个浏览器都会发生吗? –

+0

@Damien Pirsy正如我所说,我已经修复了多个浏览器,并且它与所有浏览器一起发生。 – Roman

回答

4

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

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

应该工作。我认为。

+0

谢谢,这正是问题所在。 – Roman

相关问题