代码之家  ›  专栏  ›  技术社区  ›  headacheCoder

PHP会话ID-SID的有效期是多长?[副本]

  •  3
  • headacheCoder  · 技术社区  · 12 年前

    从理论上讲,如果PHP会话ID存储在寿命为365天的cookie中,会话ID会在第365天恢复正确的会话数据吗?还是会因为会话寿命设置而导致相关会话数据超时/删除?

    我可以/应该存储和使用会话ID多长时间?

    3 回复  |  直到 12 年前
        1
  •  3
  •   doublesharp    12 年前

    理论上,你可以随心所欲地存储它,但你会不必要地耗尽资源。默认值为20分钟,可以在中进行调整 php.ini 通过设置 session.gc_maxlifetime 参数如果您需要将数据持久化更长的时间,那么将其放入数据库而不是会话中是有意义的。

        2
  •  2
  •   C3roe    12 年前

    从理论上讲,如果PHP会话ID存储在寿命为365天的Cookie中,会话ID会在第365天恢复正确的会话吗?还是相关的会话会因会话寿命设置而超时?

    cookie只存储将标识会话的会话id。

    如果有与该id对应的会话文件,则会话将恢复,否则,将创建具有该id的新的空会话。

    这个 session.gc_maxlifetime 选项命名有误——事实上它是一个 最小的 一生如果此时间跨度在上次访问会话文件之后已经过去,则会话垃圾收集器为 允许 从磁盘上擦除该文件,但它不是 放心 这将立即发生,因为垃圾收集器是随机调用的(也可以配置每个请求的概率)。

    我可以/应该存储和使用会话ID多长时间?

    只要你需要它?

    这取决于您试图做什么,如何配置会话,等等。

        3
  •  0
  •   bizzehdee    12 年前

    会话id的最后一个与相同 session.gc_maxlifetime 检查 php.ini phpinfo() 要查看您的设置,默认值为1440秒(24分钟)。尽管如果您关闭浏览器,并且没有通过cookie或其他方式恢复会话id,那么会话仍然关闭。