0
我有兩個相同名稱的cookie - 一個在我的根域,一個在子域上。默認情況下,如果您位於匹配的子域中,PHP將讀取子域cookie並忽略根cookie。如果有一個匹配的子域cookie,我將如何閱讀根域cookie?如何在當前子域名具有相同名稱的cookie時訪問根域上設置的cookie?
例如,可以說我有這兩種餅乾:
Name | Value | Domain
uid | 12345 | .example.com
uid | abcde | app.example.com
如果我在app.example.com,PHP將只顯示我這個$_COOKIE
全局陣列中:
array("uid" => "abcde");
不過,我希望能夠訪問此:
array("uid" => "12345");
這可能嗎?
我使用session_set_cookie_params這樣的嘗試:
session_set_cookie_params(0, "/", ".example.com");
session_start();
echo "<pre>"; print_r($_COOKIE["uid"]); echo "</pre>";
但它仍然會返回:
array("uid" => "abcde");
編輯:
的餅乾被設定爲以下代碼:
setcookie("uid", "12345", 0, "/", "example.com");
setcookie("uid", "abcde", 0, "/", "app.example.com");
對於會話,http://stackoverflow.com/questions/644920/allow-php-sessions-to-carry-over-to-subdomains其他的cookie,你需要指定域像你正在做的,但使用setCookie方法。 –
據我所知,瀏覽器只發送其中一個cookie,所以PHP甚至不知道另一個。瀏覽器基本上檢查是否沒有具有相同名稱的cookie。如果有的話,它會發送具有最適合該域的特定域值的域(比如app.example.com它「'app.example.com」'比'「.example.com」更具體反過來會比'「example.com」'更具體)' – Tularis
@JonathanKuhn - 指定域沒有做任何事情......如果您在該子域中,它總是會顯示來自子域的cookie。 –