我通过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
。
答案 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