基本上会话不起作用。会话正在生成并存储在服务器的正确文件夹中,但不会像通常的PHPSESSID cookie
一样存储在浏览器中。 phpinfo()
显示正在发送Set-Cookie标头,但浏览器获取的响应中缺少Set-Cookie标头。请查看以下屏幕截图:
服务器端提供的Set-Cookie标头:
浏览器获得的响应中缺少Set-Cookie标头:
另一个信息是,如果我使用javascript设置cookie,那么它可以工作并显示在浏览器的开发者工具中。
关于会话的一切都很好,只是它试图在浏览器上设置的cookie似乎没有设置。
答案 0 :(得分:4)
回答原因并修复,因为它可能在将来帮助某人并节省许多时间:
此错误发生在之前由其他人构建的网站中。这个错误似乎很不寻常,我认为这个问题很可能与Apache有关。我删除了Apache并重新安装无效。然后我安装了Nginx以查看问题是否与Web服务器软件或服务器本身有关。我发现Session在Nginx中运行良好。所以问题肯定在Apache某处。
当我查看文件时,发现<。>在.htaccess文件中某处某处的Cookie未被设置 !!
Header unset Cookie
Header unset Set-Cookie
从未想过有人会这么做!但无论如何,删除上面修复了问题。
答案 1 :(得分:0)
与我的服务提供商遇到相同的行为。事实证明,这是一个方面的缓存问题(清漆缓存)。
幸运的是,我能够通过提供的管理后端禁用Varnish-Cache 。之后,客户端响应中将出现Set-Cookie标头。