PHP setcookie domain

2022-08-30 16:35:10

某些应用程序不是由我编写的,也不是用PHP编写的,它为域创建了一个cookie。www.example.com

我正在尝试替换该饼干。所以在PHP中,我做了:

setcookie('mycookie','mydata',time() + 2*7*24*60*60,'/','www.example.com', false);

但是,生成的 cookie 是为域:创建的,请注意域前面的点 “.”。.www.example.com

所以它不会取代它,它会创建另一个cookie。我该怎么办?


答案 1

这个问题也在这里得到解决:https://www.php.net/manual/en/function.setcookie.php

请参阅jah的评论:

如果要将 Cookie 限制为单个主机,请将域参数作为空字符串提供

您也可以尝试作为域。尾随点将允许所有子域的 cookie,并且可以覆盖 -cookie,但我将首先使用上述解决方案。.example.comexample.comwww.


答案 2

如果指定域,则应遵循 RFC 2109 并在域前面加上一个点;否则客户端将执行此操作。但是,如果您根本没有指定域,则客户端将采用请求的域。


推荐