【发布时间】:2013-12-04 04:19:37
【问题描述】:
我在两个子域之间共享会话时遇到问题,我在这里和其他地方阅读了很多帖子。
我有 www.xx.com 和 sub.xx.com 并且我已经设置了
session_name("PHPSESSXX");
session_set_cookie_params(0, '/', '.xx.com');
两个域上的 session.save_path 相同。
我在两个域上都获得了一个名为 PHPSESSXX 的 cookie,它具有相同的值。
当我登录 www.xx.com 时,我会收到一个包含一些详细信息的会话,并且在我访问 sub.xx.com 之前它会一直保持这种状态。那么 sub.xx.com 上的会话是空的,如果我刷新 www.xx.com,那里的会话也消失了。所以它做了一些事情,但似乎每次我访问不同的子域时都会覆盖会话数据。
有什么想法吗? - 我可以调试一下吗?
顺便说一句:我在两个域上都使用 ssl。
干杯
【问题讨论】:
-
您的代码似乎正确,您是在
session_start之前设置的吗? -
第一个明显的调试技巧是找到浏览器的开发工具并检查 cookie 值是否保持不变。如果没问题,您可能无意中删除了会话数据。
-
我已经检查了每一个(我相信)假定的重复项,但没有找到答案。我在 session_start 之前设置它并且我没有删除任何会话值。反正不在我的 php 脚本中。