2016-03-01 70 views
1

這是一個非常奇怪的問題,我正在努力弄清楚發生了什麼事情。偶爾,我的cookie會返回值「已刪除」而不是正確的值。如果任何Web瀏覽器已過期,是否將Cookie值「刪除」?PHP cookie返回「已刪除」作爲值

我已經做了大量的Google搜索和搜索,並且找不到像這樣的東西。

有沒有人見過這個?

回答

2

檢查以確保當您撥打setcookie()時,您正在設置合理的到期時間,以確保您的Cookie在使用時不會過期。

From the php documentation (trimmed for important parts):

cookie的過期時間。這是一個Unix時間戳,因此自紀元以來秒數爲 。換句話說,你最有可能用time()函數加 這個加上你想要它到期的 之前的秒數。

如果設置爲0或省略,則cookie將在 會話結束時(瀏覽器關閉時)過期。

編輯

進一步下跌的setcookie()文檔,我發現這個

餅乾必須爲他們設置 使用相同的參數被刪除。如果value參數是空字符串或FALSE,並且所有其他參數都與先前對setcookie的調用相匹配,則將從遠程客戶端中刪除具有指定名稱的Cookie 。這個 內部通過設置值'刪除'和到期時間到過去一年達到。

即似乎您的cookie是更新爲空字符串或被設置爲false的地方。

+0

我把它定爲一年。我不認爲這是問題。實際上它返回的值是「刪除」。 – Jon

+0

您應該發佈設置您的Cookie的代碼。任何設置爲「false」值或空字符串的cookie都將被刪除。 PHP通過「將值設置爲'已刪除'並且過期時間到過去一年來刪除cookie。」這也來自PHP'setcookie()'文檔。 – Revenant

+0

查看我的編輯,因爲我發現對您的問題謹慎的更多信息。 –