2014-09-22 133 views
0

我正在使用codeigniter框架。 這是我在瀏覽器中設置cookie的currenct代碼。如果有一個已知的IP地址,那麼它不會要求你輸入安全答案。 o.w.用戶需要輸入安全答案。在PHP中設置永久性Cookie

一切工作正常,除非我完全關閉瀏覽器或重新啓動我的電腦,cookies會被刪除,並要求我再次輸入該信息。

CODE

$ip_address = $_SERVER['REMOTE_ADDR']; 
$ip_cookie = array('name'=>'ip', 
        'value'=>$ip_address, 
        'expire' => time() + (10 * 365 * 24 * 60 * 60) 
        ); 
set_cookie($ip_cookie); 

正如你可以看到我還設置有效期限這一點。

+0

查看CodeIgniter cookie助手:https://ellislab.com/codeigniter/user-guide/helpers/cookie_helper.html – 2014-09-22 15:40:50

+0

我已經檢查過了。我發現你只需要指定一個到期時間。我準備在我的代碼中提到。 – 2014-09-22 15:42:29

+0

確保您的瀏覽器沒有配置爲在關閉時刪除cookie – FuzzyTree 2014-09-22 15:47:34

回答

1

可能不是原因,但你設定了54年左右的到期日期。從the manual

到期以秒,其將被添加到當前的時間 設置。 請不要包含時間,而只需要從現在起您希望Cookie有效的秒數 。如果到期時間爲 設置爲零,則只有在瀏覽器處於打開狀態時,Cookie纔會持續。

也許瀏覽器有一個到期時間的上限。您還應該檢查您的瀏覽器開發人員工具是否收到實際值。

+0

因此,您希望我從過期時間中刪除'time()'嗎? – 2014-09-22 15:44:14

+0

由於手冊說你必須這樣做才能獲得一個有效的cookie,這是一個有趣的行爲... – 2014-09-22 15:46:19

+0

只要時間關注,我用'time()+ 60 * 60 * 24 * 30'在常規密碼cookie中。同樣的事情也發生在這一點上。它再次要求密碼。 – 2014-09-22 15:48:25