从子域到TLD共享PHP会话


Sharing PHP session from subdomain to TLD

有会话数据被保存在sub.domain.com上,我想在domain.com中使用该数据。

我确认它们都有相同的会话保存路径(通过在两者中返回ini_get('session.save_path'))

我试过把ini_set('session.cookie_domain', '.sub.domain');放在domain.com上,但没有工作。(我也删除了前面的.)。

我还尝试在每个session_start()前面添加session_set_cookie_params(0, '/', '.domain.com');,但这也不起作用。

我希望能够从sub.domain.com中设置的domain.com中使用$_SESSION数据。

我该怎么做才能使它工作?

谢谢!


UPDATE:我想出了(至少一种方法)如何做到这一点,但不确定为什么我的答案是有效的。我想我现在的问题是,为什么重命名会话名称解决这个问题?使用相同的会话cookie域(?)对我来说更有意义。
似乎设置这个域创建了一个新的会话$_SESSION['domain'](其中'domain'在session_name('domain')函数中是可互换的)

将以下内容添加到每个文件中修复此问题:

session_name("domain");
session_set_cookie_params(0, '/', '.domain.com');
session_start();

有人知道为什么重命名会话修复这个吗?这是第一行,使这一切工作