2011-02-02 127 views
0

我有一個網站,可以選擇「保持登錄狀態」。當選項被選中,我設置cookies像這麼一月份:PHP Cookie不會刪除!

$expire = time()+60*60*24*30; 
setcookie("user_ID", $userid, $expire); 
setcookie("u", $username, $expire); 
etc. 

然後,我有一個註銷腳本殺餅乾,其值設置爲null,到期日期一小時過去。

$expire2 = time()-60*60; 
foreach ($_COOKIE as $c_id => $c_value) 
{ 
    setcookie($c_id, NULL, $expire2); 
} 

當我運行註銷腳本,螢火蟲這樣說:

的Set-Cookie 用戶ID =刪除; expires =星期二,02-Feb-2010 16:43:15 GMT u =刪除; expires =星期二,02-Feb-2010 16:43:15 GMT

但是,當我回到主或其他頁面時,我仍然登錄!我設置cookie的唯一時間是當我運行登錄腳本時,爲什麼他們不會死?與格林尼治標準時間背後的當地時間有什麼關係?

+2

您是否使用基於$ _SESSION的cookie來維護身份驗證? – 2011-02-02 16:55:13

回答

3

沒關係。就像我犯的大多數錯誤一樣,這個錯誤非常愚蠢。我正在設置路徑cookie,而我的註銷腳本與登錄腳本位於不同的目錄中。我已將它們設置爲域cookie,現在它們正在工作。