PHP setcookie 奇怪的行为

问题描述 投票:0回答:1

我会尽力解释。 执行此命令的简单 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 ..我知道,它已经过时了)

我可以检查什么来解决这种奇怪的行为?

提前致谢

php cookies server-side client-side
1个回答
0
投票

您所描述的行为可能是由于 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
]);
© www.soinside.com 2019 - 2024. All rights reserved.