我有 2 个网站 A.com 和 B.com。我想将我的购物篮发送到 A.com 与 PHP 会话 B.com。 例如: 我的 A.com 篮;
session_start();
$i=0;
$_SESSION['basket'][$i]->name = "apple";
$_SESSION['basket'][$i]->description = "apppppppp";
//..etc
我试图从 B.com 连接,我看到会话中的注释。如何查看购物篮?
我必须看到这个
{
"loggedInUser": null,
"sessionid": "7hipbcrktd41lk82lvj8n967n0",
"products": [
{
"id": "8850",
"image": "737986198.jpg",
"title": "iPhone X Lansman Red Kılıf",
"code": "PY0088",
"category": "277",
"subcategory": "284",
"products": "284",
"marka": "APPLE",
"model": "iPhone X",
"type": "normal",
"price": "89.90",
"quantity": 1
}
]
}
但我看到这个
{"loggedInUser":null,"sessionid":"evlddomnf5tn116mu9aqasr2l1"}
即使我设置session_id仍然无法正常工作。 请帮忙。
它将帮助您:
1.如果会话是在cookie中设置的,则无法将其转移(除非转移到子域(,请确保通过GET转移会话
2.In 服务器之间同步与会话关联的数据,您必须共享文件系统,至少对于保存会话的路径(例如/tmp/php(
3.如果将对象保存在会话中,请确保它们在两台服务器上都可用
跨域会话 ID
默认情况下,会话 ID 使用 Cookie 进行传递。由于您的网站位于不同的域中,因此会话cookie不会转移,因此这是阻止跨域会话工作的一件事。
传输会话 id 的一种技术是将它们附加到所有请求的查询字符串中(PHP 甚至对此有一定程度的内置支持(。但是,这种做事方式有很多缺点 - 最重要的是人们一直在复制/粘贴URL,这意味着显示有效和重用无效的会话ID - 因此不建议这样做。
更好的方法是使用 Javascript 在所有感兴趣的域中发出跨域请求(当然,这需要在这方面进行合作(。这样,您可以根据需要在任意数量的服务器上无缝传输会话 ID。
此问题的简单解决方案是使用自定义会话处理程序,该处理程序将数据存储在数据库或其他全局可访问的存储中。
https://www.php.net/manual/en/session.customhandler.php