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

时间:2011-09-06 11:23:49

标签: php session localhost

我通过session_set_save_handler在MySQL中存储所有会话,但现在我需要在localhost上的子域中使用会话。这甚至可以在localhost上运行吗?

我已添加:

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

到我的代码,但似乎也没有解决问题,可能是因为我在localhost上运行代码。或者是否有任何解决方法可以在localhost上使用它?

BTW,我在Win7上使用XAMPP。

示例:

http://localhost有session_id 2oog13m67rr1sd1gk94lbf1he2

http://sub.localhost有session_id 3vr0pdqljothmmf4btlenvk047

所以,我猜你不能将.localhost用于session.cookie_domain

2 个答案:

答案 0 :(得分:2)

我尝试为.localhost.com设置Cookie,但它确实有效。 您可以在计算机的主机文件中添加localhost.com的条目以指向127.0.0.1 然后浏览器会将localhost.com的cookie转发给http://sub.localhost.com

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

答案 1 :(得分:1)

由于您已经在编写域名,我建议您不要重复使用顶级域名。要么使用自己拥有的,要么创造一个全新的。名称localhost已经具有明确定义的含义,可能会导致您遇到的问题。特别是,浏览器会根据TLD实施限制,因此您无法设置Cookie .com.co.uk。我很确定localhost在大多数浏览器中都有自己的规则。

更新:如果您使用的是Chrome,请将this bug report解析为无效

  

您只能为注册管理机构控制的域设置域Cookie,即   以.com左右结尾的东西,但不是IP或内联网主机名   本地主机

相关问题:Localhost Cookie