【发布时间】:2011-03-12 12:02:02
【问题描述】:
我有一个在我的应用程序中使用的 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 |
+-------+-------+-----------------------+-------+----------+
. 怎么会被添加到域中?我想覆盖现有的 cookie。
【问题讨论】:
-
没有意义,它必须设置为anything.domain.tld 否则某处有一个大错误-我唯一敢建议的是,您再次检查并确保第一个 cookie 实际上没有设置为 .anything 而不是第二个 ..
-
Nathan,看起来这不是一个错误,因为它可能是一个常见的混淆源。请参阅下面的答案:)
-
您可能会发现
$cookie->setDomain($domain)很有帮助,如this standalone library 中所示。它负责规范您提供的域名。