我已经阅读了很多关于在子域之间传递会话变量的论坛(包括这个论坛),我无法让它工作 . 有人可以解释我错过了什么吗?
步骤1在php.ini文件中:session.cookie_domain =“ . mydomain.com”用phpinfo()验证我正在使用正确的php.ini文件
步骤2在www.mydomain.com的页面中设置会话变量$ _SESSION ['a'],通过在下一页(它确实)上调用它来验证它是否出现 . 链接到sub.mydomain.com的链接
sub.mydomain.com上的步骤3页面检查是否使用以下方式设置会话变量:
$ a = $ _SESSION ['a']; if(!isset($ _ SESSION ['a'])){echo“错误:会话变量不可用”; }
不幸的是我收到了我的错误消息 . 我错过了什么?在此先感谢您的帮助 .
3 回答
所以,我走了一个不同的方向并使用了这个有效的条目......
session_set_cookie_params(0,'/',' . mydomain.com');在session_start();
您必须将会话ID作为cookie传递,并在新域上设置相同的会话ID
例如,您可以使用此代码
调试 .
是你缺少的东西 .
首先,你必须观察HTTP标头,看看发生了什么以及实际设置了什么cookie . 您可以使用LiveHTTPHeaders Firefox插件或其他东西 . 有了这样的信息,你可以找到问题 . 没有它,没有人可以回答旅游问题“我的 Session 不起作用”
它可以在会话设置中证明您的正确域设置声明 . 或者反驳它 .
它可以揭示一些其他错误配置 .
它可能会显示浏览器发回的cookie - 因此您可以确定这是服务器端问题
要查看代码的 actual result (而不是根据间接后果进行猜测)总是有帮助的 .