我正在开发一个应用程序(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()如何工作,但无济于事。
非常感谢任何帮助!
答案 0 :(得分:1)
你有错误的参数。 拇指的规则是:不要触摸你不知道的参数。 所以,让它只是
session_set_cookie_params(0, '/', '.domain.se');
没有任何条件。