2014-09-04 99 views
0

我發現如果我設置了一個沒有到期值的cookie,然後創建另一個cookie,第一個cookie似乎被銷燬。這是因爲一個新的會話是創建還是因爲它是另一個請求?爲什麼我的cookie在使用php設置另一個cookie時重置setcookie

我已經通過實際設置過期時間解決了我的'問題',但我只是想知道當創建第二個cookie時實際發生了什麼。

setcookie('cookieA', 'stuff', null, '/'); 

setcookie('cookieB', 'stuff', time() + 1200, '/'); 

回答

1

$的expire_time有它在功能上的setcookie自己的作用,如果它小於現在cookie將被刪除。沒有辦法不設置過期時間或將其設置爲空。這只是一個cookie的規格來達到到期時間(http://www.faqs.org/rfcs/rfc2965.html)。


如果你想餅乾永遠持續下去,只是將其設置爲巨大數量龐大
好運。 :)

+0

雖然cookie被刪除?我可以瀏覽網站,cookie仍然存在。很明顯,如果我關閉瀏覽器,它應該被刪除,因爲這會結束會話。但是第二個Cookie創建是什麼造成的? – jackie 2014-09-04 18:37:02

+0

它仍然在瀏覽器關閉後仍然存在。第二個cookie創建時沒有任何事情發生。它只是在第一個cookie上獨立創建的。當到期時間到期時,Cookie將被刪除。如果您想手動刪除cookie,只需將過期時間設置爲過去。 (例如'setcookie(「cookieB」,「stuff」,time() - 1,「/」);' – 2014-09-05 22:21:09

+0

它看起來像第一個cookie被刪除,或者發生了什麼事情後,我創建第二個one。當我設置過期時間而不是將它留空時,問題消失 – jackie 2014-09-06 04:17:14