在https上的cookie中的phpsessid

时间:2012-02-04 02:28:57

标签: php session session-cookies sessionid

在我的本地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天。

提前致谢。 看那

2 个答案:

答案 0 :(得分:2)

在此网络服务器上看起来会话处理的配置不同。您应该比较session-section下的php.ini文件中设置的值。

特别是:

  1. session.use_cookies是否设为1?
  2. session.save_path是否指向有效目录,其中webserver用户具有写入权限
  3. 请点击此处查看会话设置的完整列表: http://de3.php.net/manual/de/session.configuration.php

答案 1 :(得分:1)

我在html<之后立即调用了session_start()头>标签。这是问题所在。当我在html head标签之前移动session_start()方法时,问题就解决了。

感谢大家的帮助。
看那