2013-02-20 141 views
0

瀏覽器關閉時,「瀏覽器」會話cookie被刪除。 在JavaScript中設置「瀏覽器」會話cookie時,不包含過期日期。在PHP中刪除JavaScript會話Cookie

document.cookie= "MyCookieName = MyValue; path=/"; 

我想在php中刪除一個「瀏覽器」會話cookie。 我已經試過這樣:

setcookie('MyCookieName','', time() - 3600,'/'); 

不幸的是,該cookie沒有被清除。

+0

Cookie是否位於同一個域? – 2013-02-20 21:49:47

+0

它看起來是這樣的 – 2013-02-20 21:49:57

+0

您確定它沒有被刪除,刷新頁面嗎? – 2013-02-20 21:50:24

回答

0

首先,我不認爲它有什麼區別如何創建cookie(JS或PHP)。

您不能強制瀏覽器刪除cookie文件。但是,您可以刪除Cookie的內容並使其到期。上面的代碼就是你正在做的事情。我可能會稍微調整它:

setcookie('MyCookieName', '', 1, '/'); // no need to calculate one hour ago. 

假設cookie的有一定的價值,你可以檢查你的代碼生效:

if ($_COOKIE["MyCookieName"] == '') { 
    echo 'cookie was deleted'; 
} 

文件仍然不會被刪除,直到用戶雖然關閉了瀏覽器。

還有一件事要檢查以上不起作用的是cookie路徑(setcookie()中的第四個參數,可能只設置cookie,例如對於/blog,您應該能夠推斷出這一點通過使用Safari webkit開發者工具或類似的東西來檢查cookie。