我运行一个可以通过不同域访问的网站:domainname.de、domainname.ch、domainname.at、domainname.es 等。
当我的客户想要付款时,我们会进入一个付款页面,该页面当然是 https 安全的。由于服务器限制,我只允许拥有一个 SSL 证书,我只将它放在一个域上:domainname-secure.com。
因为我收取不同的价格,所以我需要知道用户属于哪个域,所以当重定向到 domainname-secure.com 时,我将域(例如 domainname.de)保存在会话变量中$_SESSION['domain_default']
,并通过添加session_id=[session_id]
为 get 参数来传递 sessionID。
然后,我检查$_GET['session_id']
并运行以下命令以使会话在 domainname-secure.com 上可用:
session_id($_GET['session_id']);
session_start();
当我自己测试它时,它工作得很好,但是当有人访问 domainname-secure.com 并且没有设置时,我会创建一个日志条目$_SESSION['domain_default']
。
这一天发生几次,但我真的不知道为什么这不起作用!我从许多不同的链接一次又一次地测试它,但对我来说它工作得很好。
你们中的一些人能想象为什么它有时不起作用吗?
将会话 ID 传递给另一个域是不是“好”或不安全,并且在重定向后它并不总是可读的?
我知道你很难确定一个错误,但我正在寻找一些与会话有关的已知问题,或者可能是如何以更好的方式做到这一点的提示?