【问题标题】:Session cookie not being sent when PHP session.auto_start set truePHP session.auto_start 设置为 true 时未发送会话 cookie
【发布时间】:2010-02-26 00:33:46
【问题描述】:

我一直在尝试在我的开发服务器上复制生产设置,但无法让会话正常工作。

经过许多令人沮丧的小时后,我将问题归结为 php.ini 指令 session.auto_start 没有启动会话这一事实。

AFAIK,session.auto_start = 1 和脚本顶部的 session_start() 在功能上应该相同。

如果我使用 curl 调用空 PHP 脚本以仅显示标题,我会在 session.auto_start = 1 中得到以下信息(在 php 信息页面中检查它确实设置为 true)。

me@myhost:~$ curl -I test.server.local
HTTP/1.1 200 OK
Date: Sat, 20 Feb 2010 05:18:05 GMT
Server: Apache
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM"
Content-Type: text/html

没有会话 cookie。

我所做的唯一更改是禁用 session.auto_start,添加一个 session_start();进入脚本并重新启动 apache。

me@myhost:~$ curl -I test.server.local
HTTP/1.1 200 OK
Date: Sat, 20 Feb 2010 05:18:11 GMT
Server: Apache
Set-Cookie: PHPSESSID=c7bdfb8eca47c12d97ff3ad86081d470; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
P3P: CP="NOI DSP COR NID PSA ADM OUR IND NAV COM"
Content-Type: text/html

现在可以了。

谁能帮我理解为什么 session.auto_start 没有发送会话 cookie。

【问题讨论】:

  • 您在哪里进行了配置更改?

标签: php session apache2


【解决方案1】:

这是由XDebug 中的错误引起的(讽刺吧?)。我刚刚禁用了 xdebug,但我相信升级也可能会修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2014-03-22
    • 2013-01-27
    相关资源
    最近更新 更多