如何在子域中使用php会话

如何在子域中使用php会话,php,session,subdomain,Php,Session,Subdomain,我有一个域和一个子域,如下所示 domain-name.local sub.domain-name.local 我在domain-name.local中有一个登录系统,在访问sub.domain-name.local时,我需要使用相同的会话进行验证 正如在文章中提到的,我在子域中尝试了以下内容,但没有成功 将php.ini session.cookie\u域设置为.domain-name.local 结果: firefox-有效 ie-从子域访问会话时不加载 chrome-不提供任何会话详细信

我有一个域和一个子域,如下所示

domain-name.local
sub.domain-name.local
我在domain-name.local中有一个登录系统,在访问sub.domain-name.local时,我需要使用相同的会话进行验证

正如在文章中提到的,我在子域中尝试了以下内容,但没有成功

将php.ini session.cookie\u域设置为.domain-name.local

结果:

firefox-有效 ie-从子域访问会话时不加载 chrome-不提供任何会话详细信息

从php代码中设置如下

    ini_set('session.cookie_domain', '.domain-name.local');
    session_start();
    var_dump($_SESSION);
结果:

firefox-不提供任何会话详细信息, ie-从子域访问会话时不加载, chrome-不提供任何会话详细信息

另一个php代码,如问题中所建议的

    session_set_cookie_params(0, '/', '.domain-name.local');
    session_start();
    var_dump($_SESSION);
结果: 和第二个一样

我被困在这里很长时间了,任何帮助都将不胜感激

编辑:

当我检查cookies时,我可以看到创建了两个PHPSESSID。我认为这就是问题所在。我需要使用相同的PHPSESSID从主要

编辑2

当我从php.ini或.htaccess将session.cookie\u domain设置为.domain-name.local时,除了IEIE10/win 8之外,一切都正常工作。在IE中,有时会话可以访问有时完全不可访问的网页保持加载,但几分钟内没有结果


是否有人在同一问题上有相同的经验

您应该尝试重新生成会话id:

session_regenerate_id(true);

如果会话处理不好,您可以通过会话\u集\u保存\u处理程序编写自己的会话处理程序

但是你需要这个

@setcookie(
   session_name(),
   session_id(),
   1400069742, // time + TTL
   '/',
   '.domain-name.local',
   false,
   false // use false if you need cookie accessable from javascript
  );

可能在另一个域中,$\u会话现在为空。会话\u REGENATE\u idtrue;ini_集合'session.cookie_domain','first class and more.local';会议开始;我是这样使用的,但结果仍然相同您应该在启动会话后重新生成会话id然后,严重性:注意消息:会话已启动-忽略会话\u start,但结果相同我需要将此代码放在哪里?请阅读编辑2,我也遵循该问题,但这里的问题不同,它的工作,但IE。我清楚地提到,在编辑2,我面临着一些其他问题,这是不是在重复的问题解决。但这仍然是重复的标记,这是不可接受的。请重新考虑。