PHPSESSID变量保存会话ID,但它没有被保存到客户端的cookie中。这导致每次调用session_start()
函数时都会生成一个新的会话ID。
在使用FireFox、Opera和Chrome时确实如此。但是奇怪的是,在Safari上,此变量成功保存到cookie中,一切正常。
编辑:这里是通过phpinfo()
查看的我的会话设置:
我的网站有子域名,并且我想在所有子域名中使用相同的会话。
第二次编辑:当我在主域上检查var_dump($_COOKIE);
时,我可以在名为PHPSESSID
的变量下找到会话ID,但是当我在子域上执行同样的操作时,我得到一个空的array()
数组。
session.cookie_lifetime
需要大于 0。使用 ini_set 进行验证。在session_start();
前加入ini_set('session.cookie_lifetime', 3600);
。如果可以正常工作,修复你的 php.ini 文件。 - Shea