gpt4 book ai didi

php - 如何解决 session 问题?

转载 作者:搜寻专家 更新时间:2023-10-31 20:50:04 25 4
gpt4 key购买 nike

最佳答案

How can I determine what is the mechanism which causes session_start to create new sessions wrather than resume a previous one?

这在 session_start function 的 PHP 源代码中可见。您需要阅读 C 代码并与您的用法进行比较。

根据我对 session 的了解,session_start 如果已有 session 处于事件状态,则不会启动新 session 。要查明 session 是否已经处于事件状态,请参阅 How to tell if a session is active?

但是,如果一个 session 启动(之前不存在)然后关闭,并且您在同一个请求中创建了一个新 session ,PHP 可能会认为该 session 不存在(因为来自浏览器的 cookie 仍然存在)空的)。然后第二个,也是新的, session 将开始。

如果您不确定做什么,只需为自己创建一个测试脚本,在其中尝试各种场景。

一个可能的场景:

  1. 浏览器发送请求
  2. PHP 启动
  3. session_start() 被调用。不存在 session cookie,PHP 将创建一个新的 session ID 并创建 cookie header 。
  4. 您关闭 session 。
  5. session_start() 被调用。不存在 session cookie(在请求中),PHP 将创建一个新的 session ID 并将创建 cookie header 。

已经创建了两个 session ,其中一个不会被浏览器用于后续请求(cookie 的 session id header 已被“覆盖”(最后一个 cookie header 替换了之前的 cookie header )。

要调试东西,headers_list$_COOKIES 一样有用。

关于php - 如何解决 session 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com