6

アプリで使用する Cookie があります。次のようになります。

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | bar   | my.domain.tld         | /     | Session  |
+-------+-------+-----------------------+-------+----------+

スクリプトのセクションで、ある条件に基づいて、Cookie の値を変更しようとしています。私はこのコードを使用しています:

// overwrite cookie
if($condition){
  setcookie("foo", "cat", 0, "/", "my.domain.tld");
}

その後、Cookie データは次のようになります。

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | bar   | my.domain.tld         | /     | Session  |
| foo   | cat   | .my.domain.tld        | /     | Session  |
+-------+-------+-----------------------+-------+----------+

.ドメインの先頭にaが追加されるのはなぜですか? 既存の Cookie を上書きしたい。

4

3 に答える 3

1

http://www.php.net/manual/en/function.setcookie.php#93641

答えは、php マニュアルの投稿で説明されています。

Cookie データはブラウジング エージェントによって設定されるため、ブラウザが使用するプロセスに応じて異なる方法で処理されます。

于 2010-07-06T19:41:11.357 に答える
0

結局のところ、ドメインを指定しないとうまくいくようです:

setcookie("foo", "cat", 0, "/");

予想される Cookie データ:

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | cat   | my.domain.tld         | /     | Session  |
+-------+-------+-----------------------+-------+----------+

奇妙ですが、うまくいきます。

于 2010-07-06T19:49:31.543 に答える
0

ドキュメントから:

Cookie が使用可能なドメイン。example.com のすべてのサブドメインで Cookie を使用できるようにするには、「.example.com」に設定します。。必須ではありませんが、より多くのブラウザーと互換性があります。www.example.com に設定すると、Cookie は www サブドメインでのみ使用可能になります。詳細は » 仕様のテールマッチングを参照してください。

テールマッチングの仕様は次のとおりです。

http://curl.haxx.se/rfc/cookie_spec.html

于 2010-07-06T19:44:23.667 に答える