2012-07-21 105 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"