如何在子域中使用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,我面临着一些其他问题,这是不是在重复的问题解决。但这仍然是重复的标记,这是不可接受的。请重新考虑。