【发布时间】:2011-02-18 20:08:49
【问题描述】:
我目前正在为一个应用程序 (www.domain.se, .eu) 进行开发,在该应用程序中,我们遇到了会话无法跨域传播的问题。 Internet Explorer 是造成这种情况的根本原因,因为它会根据我们输入的是“domain.se”还是“www.domain.se”来区分会话。由于一些不幸的重定向,我们无法将用户保持在用户输入的同一地址上,而是在登录时始终重定向到 www.domain.se。不用说,IE用户在输入“domain.se”时是无法登录的。
为了消除此错误,我们实现了一个函数,通过执行以下操作尝试将会话设置为在所有可能的域中有效:
if($_SERVER['HTTP_HOST'] == "domain.se")
{
session_set_cookie_params(3600, '/', '.domain.se', true);
}
根据用户输入的地址,我们基本上会经历一些 if:s,但第三个参数保持不变。
但是,这会导致任何人都无法登录,无论域如何。我已经尝试阅读 session_set_cookie_params() 的工作原理,但无济于事。
非常感谢任何帮助!
【问题讨论】:
标签: php session session-variables