我会尽力解释。 执行此命令的简单 PHP (simple.php)
setcookie("cookiename","value");
设备1
打开www.domain-a.com/simple.php:cookie设置正确
打开www.domain-b.com/simple.php:cookie设置正确
设备2
我从domain-a.com打开相同的php:没有设置cookie
我从domain-b.com打开相同的php:cookie是用cookiename和value设置的
什么鬼?!?!
这两个域具有相同的 PHP 版本(7.1 ..我知道,它已经过时了)
我可以检查什么来解决这种奇怪的行为?
提前致谢
您所描述的行为可能是由于 Cookie 中的“SameSite”属性造成的。
在您的场景中,从同一域访问时似乎可以正确设置 cookie,但从不同域访问时却不能正确设置。
要解决此问题,您可以尝试以下操作:
setcookie("cookiename", "value", [
"expires" => time() + 3600,
"path" => "/",
"domain" => ".domain-a.com",
"secure" => true, // Set this if your site is using HTTPS
"samesite" => "None", // Set SameSite to None for cross-origin requests
]);