2010-05-15 104 views
2

是否有可能使用php讀取cookie過期時間? 當我print_r($_COOKIE)它輸出:獲取cookie過期

Array 
(
    [PHPSESSID] => 0afef6bac83a7db8abd9f87b76838d7f 
    [userId] => 1232 
    [userEmail] => [email protected] 
    [firstName] => user 
    [lastName] => user 
) 

所以我覺得$_COOKIE沒有到期時間,是否有可能與其他一些功能?

+0

相關問題:http://stackoverflow.com/questions/2802760 – Gumbo 2010-05-15 11:19:21

回答

5

只有名稱和值被髮送到服務器,所以沒有其他cookie數據可用。

如果你想延長它的持續時間,你可以簡單地重新設置cookie - 這只是響應中的幾個字節,所以根本沒有關係。

+2

這樣就意味着沒有辦法讓Cookie過期... – 2010-05-15 10:56:31

+1

沒有沒有。我個人的做法是將過期時間保存在數據庫中,並讓cookie具有某種標識符。通常爲了保存登錄細節,cookie只是標識符(一個很長的隨機數,所以不能被猜到)。如果客戶(假設)發送過期時間,則不應使用它,因爲它可能已經過調理。 – Artefacto 2010-05-15 13:09:55

1

不,沒有辦法。
瀏覽器僅使用cookie參數(路徑,過期等)來確定是否發送cookie,但是這些參數都不會被髮送回服務器。

不要將cookie作爲$ _SESSON數組成員,而應視爲HTTP標頭。這總是有幫助的。

0

或者您可以使用cookie的值的函數time(),這樣您只需要一個cookie並可以檢索數據。 PHP代碼是這樣的:

setCookie('cookiename', time(), time() + 86400);

這樣的話,你就會有餅乾在一天到期,並通過檢索它的價值,你會發現,當它就會像這樣的東西到期:

86400 - (time() - $_COOKIE['cookiename']);