2015-01-09 86 views
1

我們有一個網站www.example.com使用一些cookies。 而且我們有這個網站的這樣的一個子文件夾的副本:域名中的Cookie衝突 - 子域名

www.example.com:8000/test/ 

該子文件夾的副本進行測試。

我們在域中創建這樣的餅乾(例如)和子文件夾:

setcookie("name", "value", time() + 1800); 

當我們瀏覽到域和子文件夾不同的選項卡到同一個導航儀,我們有餅乾之間的衝突,因爲我們兩個都有相同的cookie。

我認爲我們可以在子文件夾中做到這一點:

setcookie("name", "value", time() + 1800, "test", "www.example.com:8000"); 

據我所知,這只是創建子文件夾中的cookies和問題的一個部分將得到解決。 但據我所知,當我們在域的根目錄中創建一個cookie時,這個cookie也在子文件夾中可用...然後問題會持續...

任何人都知道我該如何定義一個cookie僅用於域的根文件夾?

非常感謝。

回答

1

不能

Cookies是緊密聯繫在一起的網站連接。一個域是特定的。這就是爲什麼他們是偉大而強大的。任何定義爲的cookie都可以在該域的任何頁面訪問www.example.com。但是在www.blog.example.com上,該cookie將不可訪問,因爲子域在技術上是獨立的域/網站。文件夾和子目錄不是。

使用子文件夾可讓您將cookie設置爲更深的網站部分。但是,您不能將cookie僅限制爲root用戶。

如何幫助您

使用你的cookies不同的名字。

+0

更改cookie的名稱!絕對是最簡單的解決方案。在子域名上有衝突:.example.com和.sub.example.com,後者從前者獲取cookie。 – newms87