2012-03-13 152 views
0

PHP手冊具有setcookies語法這樣在哪裏存儲PHP cookies?

setcookie ($name, $value, $expire, $path, $domain, $secure, $httponly) 

據說cookie被存儲在遠程客戶端側。語法有路徑var,如果應用的cookie將被存儲在服務器端。

現在假設我提到路徑var「/」。而用戶名爲丹麥語日誌中,我創建了一個用戶名的餅乾記得我的功能

setcookie('site_username','denish',time + 3600,'/','.xyz.com') 

現在每個不同的用戶登錄。是否過來寫以前的cookie或新的cookie時會被創造出來的?

如果我想創建一個cookie客戶端並且想要應用$ domain var,該怎麼辦?可能嗎?

回答

0

你是不正確的,在使用路徑參數從manual

其中的cookie將可在服務器上的路徑。

Cookie總是存儲在客戶端的機器上。

+0

是的,你是對的。我不明白路徑。謝謝。 – 2012-03-13 08:27:26

4

Cookie始終存儲在客戶端中。該路徑僅限制遠程頁面可訪問所述cookie的限制。例如,如果您使用路徑「/ foo /」設置cookie,則只有目錄「/ foo /」中的頁面和「/ foo /」的子目錄才能讀取cookie。

該域名只對子域名有相同的限制。

具有相同名稱的餅乾將相互覆蓋,是的。

我相信,由於安全問題,您無法將cookie設置爲除您所在頁面以外的其他域。

+0

謝謝@mroselli – 2012-03-13 08:29:39

0

如果您使用不同的$path s,您可以擁有兩個同名的cookie。

setcookie("foobar", "root", time()+3600, "/"); 
setcookie("foobar", "test", time()+3600, "/test"); 

第一餅乾(根)可在該領域使用的任何$path,除了/test/*進行訪問。在/test/*中,只能訪問第二個cookie。這兩個Cookie都由用戶的瀏覽器存儲,並且瀏覽器根據哪個Cookie的$path與當前URL匹配來決定提供哪個Cookie。