今天在修bug的時候發現,刪除不掉cookie,原來是cookie設置的時候的path值和刪除的時候path值不一樣。
默認的path值是"/"即不設置的情況下,如果path不相同的情況下會分別儲存


Cookie不僅僅有名字和值兩個屬性,還有域(domain),過期時間(expires),路徑(path)等屬性。 其中,不同的域、不同的路徑下可以存在同樣名字的cookie。 比如這個頁面: 用鼠標戳我
一般我們刪除cookie的方法是用一個同樣名字、過期時間為過去某個時候的Cookie覆蓋之。 這時就一定要搞清楚你要刪除的cookie的域和路徑,Cookie域和路徑要一樣才能被覆蓋。 否則產生的效果就是那個想要被刪除的Cookie具有神奇的生命力,無法被清除~~~
另外,我發現在設置Cookie的時候,如果沒有指定域名,那么設置的這個cookie的域默認為當前域,比如www.umiwi.com。 如果設置的時候指定了某個域,那么瀏覽器存的時候會自動在前面加.。比如PHP代碼: setcookie('test','a',0,'www.umiwi.com'); 那么 瀏覽器里面存的Cookie的域為.www.umiwi.com。 所以,最好的方式是設置Cookie的時候怎么寫的,刪除的時候就怎么寫。 要不就會出現我遇到的情況: 明明瀏覽器里看有 username=longbill,域為www.umiwi.com的Cookie,但是在php里寫 setcookie('username','',time()-1000,'www.umiwi.com','/'); 無法刪除那個Cookie。 原因就是我刪Cookie的操作其實上是發了一個新的名叫username、值為空、過期時間為過去1000秒、域為.www.umiwi.com、路徑為/的Cookie。這個Cookie發到瀏覽器馬上就過期了,什么也看不到。
鏈接:http://www.cnblogs.com/gossip/archive/2011/12/06/2278282.html