2013-02-15 255 views
0

我已經通過各種線程閱讀,但沒有任何解決方案似乎工作。PHP cookie沒有刪除

我有兩個PHP頁面:

cookieson.php

<?php session_start(); 
$future = time()+60*60*24*30*12; 
setcookie('CookiesAgreed', 'yes', $future, '/'); 
?> 

cookiesoff.php

<?php session_start(); 
$past = time()-9999999999999999; 
setcookie('CookiesAgreed', null, $past, '/'); 
?> 

cookieson.php正確設置Cookie 「CookiesAgreed」 與到期大約一年之後。

cookiesoff.php應該完全清除「CookiesAgreed」cookie,但似乎沒有做任何事 - 值不會改變(根據Firefox的Cookies列表),過期不會改變,cookie不會改變不要刪除。有時會創建一個全新的cookie(同樣,根據Firefox)具有相同的名稱,值和截止日期。

我在做什麼錯?

+0

隨着我的火狐18我不能再現它。除會話標識符外,Firebug不會列出任何Cookie。 – fyr 2013-02-15 11:24:59

+0

只是說Cookie的法律被取消,這是我聽到的最後一件事:) – EaterOfCode 2013-02-15 11:26:49

+0

D'oh。我很愚蠢。我認爲Firefox的Cookie列表窗口會動態更新已刪除的Cookie(就像它自動添加的Cookie一樣)。 原來,您必須確定您的方式不在窗口中,然後再次打開,以查看已刪除的Cookie。 道歉。 – 2013-02-15 12:07:36

回答

7

這超出堆棧(你可以在http://www.rugbyfiles.com/cookieson.phphttp://www.rugbyfiles.com/cookiesoff.php見)和溢出:

$past = time()-9999999999999999; 

相反,這樣做的方法:

$past = time()-60*60*24*30*12; 

時間變量可以容納只有從04294967296的值。當你給出如此長的負值時,它會走出堆積。

+7

+1使用「堆棧」和「溢出」。 – qben 2013-02-15 11:26:06

+0

哈哈......是故意的。 :)但這些是我唯一可以使用的單詞。 :) – 2013-02-15 11:26:24

+0

Stuart Pinfold來到右邊的網站尋求幫助,hehe:D – 2013-02-15 11:28:53

0
setcookie("CookiesAgreed","",time()-24*60*60,"/"); 
+1

請添加一些關於您的答案的細節。 – emmanuel 2015-02-24 13:07:42