PHP session_write_close() 不断发送 set-cookie header

标签 php session cookies

在我的框架中,我多次调用 session_write_close()。

让我们假设一个与用户代理的 session 已经启动。以下代码...

foreach($i = 0; $i < 3; $i++) {
    session_start();
    session_write_close();
}

...将向浏览器发送以下请求 header :

Set-Cookie    PHPSESSID=bv4d0n31vj2otb8mjtr59ln322; path=/
              PHPSESSID=bv4d0n31vj2otb8mjtr59ln322; path=/

不应该有 Set-Cookie header ,因为按照我的规定, session cookie 已经在用户端创建。但是在上面的脚本中第一次调用 session_write_close() 之后,每次调用 session_write_close() 都会导致 PHP 指示浏览器再次设置当前 session 。

这不会破坏我的应用程序或任何东西,但它很烦人。有没有人知道如何防止 PHP 在每次后续调用 session_write_close 时重新设置 cookie?

编辑

问题似乎是每次后续调用 session_start() 时,PHP 都会将 session cookie 重新设置为它自己的 SID,并发送一个 Set-Cookie 响应 header 。但是为什么??

最佳答案

PHP不推荐这样做,有bunch of bugs submitted for this .因为他们认为这不是一个好的做法 - 这是不会修复的错误。

关于PHP session_write_close() 不断发送 set-cookie header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130241/

相关文章:

javascript - 在 Javascript 函数中销毁 PHP SESSION

java - 为什么 Firefox WebDriver 不会从以前的浏览器 session 中加载 Cookie?

PHP Lua注册系统

php - 全局变量覆盖 PHP 中的 session 变量

php - 带 LIMIT 的 Laravel STDDEV

java - java中如何获取上一个 session id

Javascript 获取 Cookie 对某些值不起作用

html - Firebase Cookie 限制

php - 在 PHP exec() 中隐藏命令参数

php - 包含父目录中的页眉和页脚但不显示 css