繁体   English   中英

如何在localhost上跨子域使用会话?

[英]How do I use sessions across subdomains on localhost?

我通过session_set_save_handler将所有会话存储在MySQL中,但是现在我需要在localhost上跨子域使用会话。 那甚至可以在本地主机上工作吗?

我已经添加:

ini_set('session.cookie_domain', '.localhost');

到我的代码,但这似乎也不能解决问题,可能是因为我在本地主机上运行代码。 还是有什么解决方法可以在localhost上使用它?

顺便说一句,我在Win7上使用XAMPP。

例:

http:// localhost具有session_id 2oog13m67rr1sd1gk94lbf1he2

http://sub.localhost具有session_id 3vr0pdqljothmmf4btlenvk047

因此,我想您不能将.localhost用于session.cookie_domain

我尝试为.localhost.com设置cookie,它起作用了。 您可以在计算机的主机文件中添加localhost.com的条目,使其指向127.0.0.1,然后浏览器会将localhost.com的cookie转发到http://sub.localhost.com

它在node.js上对我有用,我认为类似的东西也应该在php上工作

由于您已经在组成域名,因此建议您不要重复使用顶级域名。 您可以使用自己拥有的一个,也可以发明一个全新的。 localhost名称已经有一个明确定义的含义,并且可能导致类似您所面临的问题。 尤其是,浏览器会基于TLD施加限制,因此您将无法例如设置cookie .com.co.uk 我很确定localhost在大多数浏览器中也都有自己的规则。

更新:如果您使用的是Chrome,看到这个bug报告解析为无效

您只能为注册表控制的域设置域Cookie,即以.com左右结尾的域,而不能为IP或Intranet主机名(如localhost)设置

相关问题: Localhost Cookie

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM