phpsession在https上的cookie中


phpsessid in cookie over https

在我的本地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文件中设置的值。

特别是:

  1. session.use_cookies是否设置为1
  2. session.save_path是否指向Web服务器用户具有写入权限的有效目录

有关会话设置的完整列表,请参阅此处:http://de3.php.net/manual/de/session.configuration.php

我在html<head>标签。这就是问题所在。当我将session_start()方法移到html头标记之前时,问题就解决了。

感谢大家的帮助
卡纳