在我的本地WAMP服务器中,当我调用session_start()
时,会话id在cookie中设置如下,var_dump($_COOKIE)
给出如下。
array
'PHPSESSID' => string 'qg8nrlpdtgb391386lhghgv727' (length=26)
因此,当我再次调用session_start()时,我的上一个会话将恢复。
但是,当我将相同的代码部署到web服务器时,cookie中没有设置PHPSSID。因此,每次我调用session_start(),
时,都会创建一个新会话,而不是恢复上一个会话。
谁能告诉我问题的可能原因吗我们必须明确地将PHPSSID设置为cookie吗
此外,在我的本地(WAMP)中,我没有https,但我推送代码的web服务器是https。这是个问题吗
我已经被这个问题困扰了将近3天了。
提前谢谢。卡纳
看起来此Web服务器上的会话处理配置有所不同。您应该比较会话部分下php.ini文件中设置的值。
特别是:
session.use_cookies
是否设置为1session.save_path
是否指向Web服务器用户具有写入权限的有效目录
有关会话设置的完整列表,请参阅此处:http://de3.php.net/manual/de/session.configuration.php
我在html<head>标签。这就是问题所在。当我将session_start()方法移到html头标记之前时,问题就解决了。
感谢大家的帮助
卡纳