2011-06-22 94 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

相關問題