栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP中的会话超时:最佳实践

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP中的会话超时:最佳实践

每次调用session_start时,都会更新会话文件的时间戳(如果存在),该时间戳用于计算是否超过了session.gc_maxlifetime。

更重要的是,在超过session.gc_maxlifetime时间之后,您不能依赖会话过期。

PHP在当前会话加载后,在过期的会话上运行垃圾回收,并通过使用session.gc_probability和session.gc_divisor来计算垃圾回收将运行的可能性。默认情况下,其概率为1%。

如果访问者数量少,则闲置的用户可能会访问应该已过期并已删除的会话。如果这对您很重要,则需要在会话中存储时间戳并计算用户不活动的日志方式。

此示例替换session_start并强制超时:

function my_session_start($timeout = 1440) {    ini_set('session.gc_maxlifetime', $timeout);    session_start();    if (isset($_SESSION['timeout_idle']) && $_SESSION['timeout_idle'] < time()) {        session_destroy();        session_start();        session_regenerate_id();        $_SESSION = array();    }    $_SESSION['timeout_idle'] = time() + $timeout;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号