我有一個cookie用在我的應用上。它看起來像這樣:PHP 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 2010-07-06 19:46:30
Nathan,它看起來不是一個錯誤,因爲它可能是混淆的常見來源。看到下面的答案:) – 2010-07-06 19:53:44
你可能會發現['$ cookie-> setDomain($ domain)'](https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php# L117)很有幫助,在[這個獨立的庫](https://github.com/delight-im/PHP-Cookie)中找到。它負責規範您提供的域名。 – caw 2016-09-21 04:23:08