【问题标题】:The question between session.gc_maxlifetime and session.cookie_lifetimesession.gc_maxlifetime 和 session.cookie_lifetime 之间的问题
【发布时间】:2011-07-27 13:49:17
【问题描述】:

我在 stackoverflow 中的第一个问题。提前致谢!

我对 PHP 会话机制感到很困惑。我已经通过PHP - ini_set('session.gc_maxlifetime', 5) - Why it doesn't end the session? 了解了 session.gc_maxlifetime。但是我还是不知道 session.gc_maxlifetime 和 session.cookie_lifetime 的区别。

问题: 如果 session.cookie_lifetime 的时间到了会发生什么?会话cookie会直接从客户端计算机中删除吗?

我需要弄清楚这个问题,然后继续问更多问题。

【问题讨论】:

    标签: php session-timeout session-cookies


    【解决方案1】:

    cookie 生存期被传输到客户端。如果 cookie 的生命周期已过,客户端通常会删除它。所以它是客户端。即使在 cookie 消失后,会话也可以处于活动状态,因为您可以再次创建相同的 cookie,扩展其生命周期,或通过 uri 传输会话 ID。

    希望有帮助!

    【讨论】:

    • 谢谢!你的意思是如果 session.gc_maxlifetime 没有超时,即使客户端的会话 cookie 被删除,这个会话也会通过向客户端发送一个新的会话 cookie 来自动工作?
    • 没有。如果 sessionid 不再存储在客户端,服务器将无法识别客户端,因此您无法在同一会话中工作。将生成一个新会话。
    • 哇!我得到了它!谢谢朋友!
    • 感谢您解释 session_timeout,但您没有解释 gc_maxlifetime。
    【解决方案2】:

    session.gc_maxlifetime 是以秒为单位的时间,在此之后您的会话数据可能被视为垃圾数据。换句话说,您可以说这是一个未使用的 PHP 会话将保持活动状态的时间。

    session.cookie_lifetime 是以秒为单位的会话 cookie 的生存时间,无论会话是否处于活动状态。因此 cookie 会一直保持活动状态,直到给定的时间过去

    见:
    http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime https://blogs.oracle.com/oswald/entry/php_session_gc_maxlifetime_vs

    【讨论】:

    • 您链接的文章确实有帮助,尤其是这些陈述: 1. session.gc_maxlifetime - “...只要他的点击之间的时间不超过 1440 秒。超时值。” 2. session.cookie_lifetime - “这个值间接定义了一个会话的“绝对”最大生命周期,不管用户是否活跃。如果这个值设置为60,每个会话在一个小时后结束。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2011-05-29
    • 2010-11-29
    • 2013-02-23
    • 2014-02-27
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多