为了账号安全,请及时绑定邮箱和手机立即绑定

我的课程将持续多长时间?

我的课程将持续多长时间?

PHP
有只小跳蛙 2019-11-30 13:46:09
有人可以从下面的数据中告诉我我的会话将持续多长时间吗?-我不确定哪个告诉我session.auto_start  Off Offsession.bug_compat_42   Off Offsession.bug_compat_warn On  Onsession.cache_expire    180 180session.cache_limiter   nocache nocachesession.cookie_domain   no value    no valuesession.cookie_httponly Off Offsession.cookie_lifetime 0   0session.cookie_path /   /session.cookie_secure   Off Offsession.entropy_file    no value    no valuesession.entropy_length  0   0session.gc_divisor  1000    1000session.gc_maxlifetime  1440    1440session.gc_probability  1   1session.hash_bits_per_character 5   5session.hash_function   0   0session.name    PHPSESSID   PHPSESSIDsession.referer_check   no value    no valuesession.save_handler    files   filessession.save_path   /var/lib/php/session    /var/lib/php/sessionsession.serialize_handler   php phpsession.use_cookies On  Onsession.use_only_cookies    Off Offsession.use_trans_sid   0   0
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

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


因为会话数据由垃圾收集器,其仅由称为除去session_start用的概率session.gc_probability合由devided session.gc_divisor。默认值为1和100,因此垃圾收集器仅在所有session_start调用的1%中启动。这意味着,即使会话在理论上已经超时(会话数据更改的时间超过了几秒钟前的session.gc_maxlifetime),会话数据的使用时间也可以更长。


因此,我建议您实施自己的会话超时机制。请参阅我的答案,如何在30分钟后使PHP会话到期?更多细节。


查看完整回答
反对 回复 2019-11-30
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

如果session.cookie_lifetime为0,则会话cookie一直存在,直到退出浏览器。


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


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 507 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信