session.gc_maxlifetime和session.cookie_lifetime之间的问题

时间:2011-04-01 09:57:46

标签: php session-timeout session-cookies

我在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是否会直接从客户端计算机中删除?

我需要弄清楚这个问题,然后继续问一些事情。

2 个答案:

答案 0 :(得分:4)

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 :(得分:2)

Cookie生命周期传输到客户端。如果cookie已经重现了它的生命周期,那么客户端通常会将其删除。所以它是客户端的。即使在cookie消失之后,a会话也可以存活,因为你可以再次创建相同的cookie,epand它的生命周期,或者通过uri传输session-id。

希望有所帮助!