从子域到TLD共享PHP会话

时间:2013-05-19 02:29:47

标签: php session

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

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

我尝试将ini_set('session.cookie_domain', '.sub.domain');放在domain.com上,但这不起作用。 (我还删除了前面的.)。

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

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

我能做些什么工作?

谢谢!

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

1 个答案:

答案 0 :(得分:2)

将以下内容添加到每个文件中:

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

是否有人知道为什么重新命名会话会修复此问题?这是使第一行完成所有工作的第一行。