PHP cookie写在不正确的域上

mač*_*ček 6 php cookies setcookie

我有一个我在我的应用程序上使用的cookie.它看起来像这样:

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | bar   | my.domain.tld         | /     | Session  |
+-------+-------+-----------------------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

在我的脚本的一部分中,基于某些条件,我正在尝试更改cookie的值.我正在使用此代码:

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

之后,我的cookie数据如下所示:

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | bar   | my.domain.tld         | /     | Session  |
| foo   | cat   | .my.domain.tld        | /     | Session  |
+-------+-------+-----------------------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

为什么.要将a 添加到域名之前?我想覆盖现有的cookie.

mač*_*ček 0

事实证明,不指定域似乎是可行的:

setcookie("foo", "cat", 0, "/");
Run Code Online (Sandbox Code Playgroud)

预期的 cookie 数据:

+-------+-------+-----------------------+-------+----------+
| Name  | Value | Domain                | Path  | Expires  |
+-------+-------+-----------------------+-------+----------+
| foo   | cat   | my.domain.tld         | /     | Session  |
+-------+-------+-----------------------+-------+----------+
Run Code Online (Sandbox Code Playgroud)

奇怪,但它有效。