【发布时间】:2012-02-26 14:50:25
【问题描述】:
在我的本地 WAMP 服务器中,当我调用 session_start() 时,会话 ID 在 cookie 中设置如下,var_dump($_COOKIE) 给出以下信息。
array
'PHPSESSID' => string 'qg8nrlpdtgb391386lhghgv727' (length=26)
所以当我再次调用 session_start() 时,我之前的会话会恢复。
但是当我将相同的代码部署到我的网络服务器时,没有在 cookie 中设置 PHPSESSID。因此,每次我调用session_start(), 时,都会创建一个新会话,而不是恢复上一个会话。
谁能告诉我问题的可能原因。 我们是否必须将 PHPSESSID 显式设置为 cookie?
另外,在我的本地(WAMP)中,我不拥有 https,但我推送代码的网络服务器是 https。这是个问题吗?
我已经坚持了将近 3 天了。
提前致谢。 神无
【问题讨论】:
-
你检查过服务器上的[session.use_cookies](php.net/manual/en/…)吗?
-
我们是否必须在每次调用 session_start 时都设置 cookie 参数.. 你能解释一下它是如何在我的 WAMP 服务器上工作而不设置 cookie 参数...
-
请将以下单行复制到 PHP 文件中,并告诉我们输出的行:
<?php $path = session_save_path(); if (is_dir($path)) echo (is_readable($path) ? 'path is readable' : 'path is not readable').' and '.(is_writable($path) ? 'path is writable' : 'path is not writable'); else die('path is not a directory'); echo (ini_get('session.use_cookies') ? ' and use cookies are set' : ' and cookies are not set'); -
糟糕,我刚刚看到你解决了你的问题
标签: php session session-cookies sessionid