我的会议会持续多久?

时间:2009-10-04 12:17:08

标签: php session timeout

有人可以告诉我我的会话将持续多长时间从下面的数据? - 我不确定哪一个告诉我

session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    no value    no value
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/lib/php/session    /var/lib/php/session
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    Off Off
session.use_trans_sid   0   0

4 个答案:

答案 0 :(得分:82)

通常,您可以说session.gc_maxlifetime指定自上次更改会话数据以来的最长生命周期(上一次调用session_start!)。但PHP的会话处理有点复杂。

因为会话数据被垃圾收集器删除,垃圾收集器仅由session_start调用,概率session.gc_probabilitysession.gc_divisor划分。默认值为1和100,因此垃圾收集器仅在所有session_start调用的1%中启动。这意味着即使会话已在理论上超时(会话数据的更改时间超过 session.gc_maxlifetime 秒前),会话数据的使用时间也会超过此时间。

因为这个事实,我建议你实现自己的会话超时机制。有关详细信息,请参阅my answer to How do I expire a PHP session after 30 minutes?

答案 1 :(得分:19)

这是一个。会议将持续1440秒(24分钟)。

session.gc_maxlifetime  1440    1440

答案 2 :(得分:8)

您正在搜索gc_maxlifetime,有关说明,请参阅http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

您的会话将持续1440秒,即24分钟(默认)。

答案 3 :(得分:7)

If session.cookie_lifetime is 0, the session cookie lives until the browser is quit.

编辑:其他人提到session.gc_maxlifetime设置。发生会话垃圾收集时,垃圾收集器将删除任何超过session.gc_maxlifetime秒未访问的会话数据。要设置会话cookie的生存时间,请调用session_set_cookie_params()或定义session.cookie_lifetime PHP设置。如果此设置大于session.gc_maxlifetime,则应将session.gc_maxlifetime增加到大于或等于Cookie生存期的值,以确保您的会话不会过期。

相关问题