1

私は単純な何かを見逃している必要がありますが、これは私をバタバタさせています。

次のように、大量の配列Cookieを設定しています。

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

これは問題なく機能し、Cookieが設定されており、ブラウザのCookieリストで確認できます。

ただし、特定の値だけを読み戻すことはできないようです。理由はわかりません。たとえば、次のCookieを設定します。

adjusted[calldelivernow.net]

これがFirefoxのCookieページにある名前で、コンテンツは「calldelivernow.net」であることがわかります。しかし、これを実行しようとすると、falseが返されます。

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 に答える