在我的本地WAMP服务器中,当我调用session_start()
时,会在cookie中设置session-id,如下所示,var_dump($_COOKIE)
给出以下内容。
array
'PHPSESSID' => string 'qg8nrlpdtgb391386lhghgv727' (length=26)
所以当我再次调用session_start()时,我的上一个会话将恢复。
但是当我将相同的代码部署到我的网络服务器时,没有在cookie中设置PHPSESSID。因此,每次调用session_start(),
时,都会创建一个新会话,而不是恢复上一个会话。
任何人都可以告诉我问题的可能原因。 我们是否必须将PHPSESSID明确设置为cookie?
此外,在我的本地(WAMP)中我不有https,但推送代码的网络服务器是https。这是一个问题吗?
我现在已经坚持了将近3天。
提前致谢。 看那
答案 0 :(得分:2)
在此网络服务器上看起来会话处理的配置不同。您应该比较session-section下的php.ini文件中设置的值。
特别是:
session.use_cookies
是否设为1?session.save_path
是否指向有效目录,其中webserver用户具有写入权限请点击此处查看会话设置的完整列表: http://de3.php.net/manual/de/session.configuration.php
答案 1 :(得分:1)
我在html<之后立即调用了session_start()头>标签。这是问题所在。当我在html head标签之前移动session_start()方法时,问题就解决了。
感谢大家的帮助。
看那