可以';t使用PHP检索某些cookie


Can't retrieve certain cookies with PHP

我一定错过了一些简单的东西,但这让我很沮丧。

我正在设置一大堆数组cookie,就像这样:

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

这很好,cookie正在设置中,我可以在浏览器的cookie列表中看到它们。

然而,我似乎不能只读出某些值!我不知道为什么。例如,我设置了这个cookie:

adjusted[calldelivernow.net]

我可以在Firefox的cookie页面上看到它的名字,内容是"calldeliverynow.net"。但所有尝试都返回false:

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

这只是众多例子中的一个,所有这些都在相同的参数下,只是域名不同。我到底错过了什么?浏览器中怎么可能存在cookie,而PHP却无法读取它?

因为您没有正确地使用它的名称来调用它。与表单名称不同,cookie不会堆叠到数组中。

尝试$_COOKIE["adjusted[calldelivernow.net]"]

问题似乎是cookie名称不能包含句点!奇怪的是,Firefox实际上显示cookie名称是正确的,并且包含句点,但$_COOKIE数组将句点替换为下划线,如下所示:["calldelivernow_net"]=> string(4) "test"