2012-07-21 110 views
1

我必須錯過一些簡單的東西,但是這會讓我非常沮喪。無法使用PHP檢索某些cookie

我設置了一大堆陣列的餅乾,例如:

setcookie("adjusted[$title]", $title, time() + 3600, "/", ".domain.com"); 

這只是正常,餅乾正在建立,我可以看到他們在瀏覽器的cookie列表。

但是,我似乎無法只讀取某些值!我不知道爲什麼。例如,我設置的cookie:

adjusted[calldelivernow.net] 

,我可以看到這是它在Firefox中的cookie頁面名稱,內容是「calldelivernow.net」。但所有嘗試這樣做將返回false:

if(isset($_COOKIE["adjusted"]["calldelivernow.net"])) 
    die("Cookie is set"); 

這僅僅是一個很多的例子,所有在相同的參數只是用不同的域名。我到底在想什麼?如何在瀏覽器中明確存在cookie,但PHP無法讀取它?

回答

4

因爲你沒有正確調用它的名字。與表單名稱不同,Cookie不會堆疊到數組中。

嘗試$_COOKIE["adjusted[calldelivernow.net]"]

+0

沒有任何變化,只是返回false。 =( – 2012-07-21 19:57:01

+0

@Jonathan:嘗試'的var_dump()'荷蘭國際集團的'$ _COOKIE'超全局,看看在那裏 – 2012-07-21 20:00:29

+0

我已經有實際的,它的滿載餅乾,但不是說缺少,儘管他們的那些清楚地出現在Firefox瀏覽器。這些丟失的餅乾也被重置,如果我把它們都刪除,然後再次運行我的設置腳本,以便他們肯定是被設置 – 2012-07-21 20:08:50

0

問題似乎是cookie名稱不能包含句點!奇怪的是,Firefox實際上顯示cookie的名稱是正確的並且包含句點,但$_COOKIE數組用下劃線替換句點,如下所示:["calldelivernow_net"]=> string(4) "test"