重定向后 PHP 会话丢失(有时)

重定向后 PHP 会话丢失(有时)

我在 Windows 环境中使用 Apache/2.4.28 (Win64) PHP/7.0.32。

我尝试这个问题,但就我的情况来说,有时会出现丢失错误。

(有时意味着问题发生 5 个小时或更长时间或几天......)

(我想,也许..这个 PHP 问题https://bugs.php.net/bug.php?id=16263

(这个,非常类似的情况,但没有解决方案......https://serverfault.com/questions/869781/apache-on-windows-cookie-w-php-sessions-bug

当我尝试保存会话并重定向时,有时会失败。

//正常情况

  1. session_start() -> 从服务器“aaa”获取会话 ID -> 保存在 cookie 中

  2. 使用请求标头中的“aaa”cookie 进行重定向

  3. 我可以在重定向页面中使用会话。

//错误情况

  1. session_start() -> 从服务器“aaa”获取会话 ID -> 保存在 cookie 中

  2. 使用请求标头中的“aaa”cookie 进行重定向

  3. 但服务器响应不同的会话 ID“bbb”。即使 Web 服务器在 Windows 临时文件夹中有“sess_aaa”文件。在这种情况下,服务器有“sess_aaa”和“sess_bbb”两个会话文件。

    • sess_aaa:有会话信息。
    • sess_bbb :0kb 空会话文件
  4. 在 apache 重新启动之前我无法使用会话。

//有关此错误的更多信息...

  • Windows 资源 CPU 3~5%,内存 30% -> 没有问题
  • $_GET、$_POST、$_REQUEST、$_SERVER 其他 PHP 变量运行良好。

请帮助我提出你的好主意。(感谢哈斯塔的指南)

答案1

我将 Windows PHP 更改为 FCGI 版本...(非线程安全)然后运行良好。

相关内容