Cookie值在Firefox中没有返回



这在所有浏览器的本地开发版本上运行完全正常…

foreach ($_COOKIE as $key=>$val) {
echo $val . '<br />';       
}

…并将返回页面上的所有当前cookie值,如下所示:

10000
20000
30000

问题是它在Firefox或Edge产品中没有返回任何东西。它确实可以在Chrome上运行。

这是Chrome开发工具在我的本地版本上看到的cookie:

Name                Value   Domain          Path    Expires / Max-Age           Size    Priority
------------------------------------------------------------------------------------------------
wish_product_10425  10000   testing.local   /       2021-08-08T04:48:37.000Z    23      Medium  
wish_product_10499  20000   testing.local   /       2021-08-09T01:54:38.000Z    23      Medium  
wish_product_10644  30000   testing.local   /       2021-08-09T01:54:39.000Z    23      Medium  

…以下是Firefox开发工具在我的本地版本上看到的cookie:

Name                Value   Domain          Path    Expires / Max-Age           Size    HttpOnly    Secure  Priority    SameSite
--------------------------------------------------------------------------------------------------------------------------------
wish_product_10425  10000   testing.local   /       2021-08-08T04:48:37.000Z    23      false       false       Medium  None
wish_product_10499  20000   testing.local   /       2021-08-09T01:54:38.000Z    23      false       false       Medium  None
wish_product_10644  30000   testing.local   /       2021-08-09T01:54:39.000Z    23      false       false       Medium  None

总而言之,它可以在所有浏览器的本地开发版本中工作,但在生产环境中,它只能在Chrome中工作。

仅供参考,在生产中cookie域是正确的生产域。没有PHP错误。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite:

具有SameSite=None的cookie现在也必须指定Secure属性(它们需要安全上下文/HTTPS)。

你的cookie设置为SameSite=None,但也设置为Secure=false,这意味着Firefox将阻止它们,即不将它们发送回后续请求。

您需要设置Secure=true,然后通过HTTPS访问您的系统-或者而不是设置SameSite=None。(所以LaxStrict代替)

根据@CBroe的建议修复了cookie后,这个循环仍然不起作用:

foreach ($_COOKIE as $key=>$val) {
echo $val . '<br />';       
}

…直到我在一个完全不同的web主机上尝试它,它工作得很好(我的其他cookie相关脚本也是如此)。

问题原来是我们的主机WPEngine,根据我的支持对话,他说解决这个问题的唯一方法是他们从缓存中排除所需的cookie名称(或部分cookie名称)。

一旦完成,一切都工作了。

更多信息:https://wpengine.com/support/cookies-and-php-sessions/

最新更新