1

我必须遗漏一些简单的东西,但这让我很生气。

我正在设置一大堆数组cookie,如下所示:

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

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

但是,我似乎无法只读取某些值!我不知道为什么。例如,我设置了这个 cookie:

adjusted[calldelivernow.net]

我可以在 Firefox 的 cookie 页面中看到它的名称,内容是“calldelivernow.net”。但是所有这样做的尝试都返回错误:

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

这只是众多示例中的一个,所有示例都使用相同的参数,只是域名不同。我到底在这里想念什么?cookie 怎么可能明明存在于浏览器中,而 PHP 却无法读取呢?

4

2 回答 2

4

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

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

于 2012-07-21T19:49:37.233 回答
0

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

于 2012-07-22T02:21:46.343 回答