[英]PHP SESSION works only over HTTPS + PHPSESSID cookie is not sent
[英]phpsessid in cookie over https
在我的本地WAMP服务器中,当我调用session_start()
,将在cookie中设置会话ID如下,而var_dump($_COOKIE)
给出以下内容。
array
'PHPSESSID' => string 'qg8nrlpdtgb391386lhghgv727' (length=26)
因此,当我再次调用session_start()时,我的上一个会话将恢复。
但是当我将相同的代码部署到Web服务器时,未在cookie中设置PHPSESSID。 因此,每次我调用session_start(),
都会创建一个新会话,而不是继续上一个会话。
谁能告诉我这个问题的可能原因。 我们是否必须将PHPSESSID显式设置为cookie?
另外,在我的本地(WAMP)中,我没有 https,但是我推送代码的Web服务器是https。 这有问题吗?
我已经坚持了将近3天。
提前致谢。 卡纳
看起来会话处理在此Web服务器上的配置有所不同。 您应该在会话部分下比较php.ini文件中设置的值。
特别:
session.use_cookies
是否设置为1? session.save_path
是否指向Web服务器用户具有写许可权的有效目录 有关会话设置的完整列表,请参见此处: http : //de3.php.net/manual/de/session.configuration.php
我在html <head>标记后立即调用了session_start()。 这就是问题所在。 当我将session_start()方法移到html head标记之前时,此问题已解决。
感谢大家的帮助。
卡纳
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.