2011-05-31 129 views
0

我有兩個簡單的函數來設置和清除cookie。cookie刪除問題

private function _setCookie($value = null) { 
    $value = $value === null ? $this->getRandomId() : $value; 
    setcookie($this->getName(), $value, time()+10800, '/'); 
} 

private function _clearCookie() {      
    setcookie($this->getName(), '', time()-10800, '/');     
} 

有訪問時,一個頁面開始會話,並根據需要創建一個cookie。當重定向調用發生從不同的服務器到我的頁面時,刪除cookie函數在_clearCookie函數上面調用。我檢查了setcookie返回true,並且我還試圖用同樣的方法取消設置cookie,但是當我重新加載頁面時cookie仍然可用。我仍然可以在瀏覽器中找到cookie以及螢火蟲和print_r($ _ COOKIE)

此外,我更改了過期時間() - (3600 * 24),如上所述是其他一些線程,但我的情況沒有變化。我在這裏錯過了什麼?

+0

確保你沒有設置cookie之前發送數據,否則頭會被忽略。 – 2011-05-31 10:10:57

+0

我已經驗證,並且在cookie delte調用之前沒有數據發送 – 2011-05-31 10:21:40

+0

環顧四周設置回程: setcookie(「cookiename」,「」,mktime(12,0,0,1,1,1990)「/ 「); – DevilCode 2011-05-31 11:16:44

回答

0

所以當我提到'重定向呼叫發生從不同的服務器到我的網頁'我試圖提及它作爲反向通道調用。作爲一個返回通道調用,瀏覽器cookie沒有被識別,我猜想,這也是主要原因,即使setcookie返回了真實的,實際的cookie從瀏覽器中刪除將不會發生在這種情況下。