php session 过期时间问题

php中文网
发布: 2016-06-06 20:48:36
原创
1449人浏览过

session.gc_maxlifetime 设置的话,概率是 gc_probability/gc_divisor; 不明白为什么要这个规定;这个不明白原理

发现 session 会监视用户是否活动,然后会自动更新 session 文件的最后修改时间。

所以写了一个 function 读取 session 文件的最后修改时间,然后跟现在时间对比,如果大于设定的过期时间,假设是 10 分钟。就清空对应 session 的信息。这样可以吗?

有没有更好的方法?

ps:我是指不活动情况下过期时间

PHP房产程序[BBWPS]
PHP房产程序[BBWPS]

[PHP房产程序|BBWPS]功能介绍 1、5种信息类别发布:出租、求租、出售、求购、楼盘信息,支持会员发布信息审核; 2、灵活的信息参数设置; 3、充足的信息字段; 4、简单易用的发布/编辑功能,支持配图上传; 5、灵活的信息管理功能; 6、信息输出伪静态,方便搜索引擎抓取数据; 7、支持RSS输出; 8、内置数据高速缓冲技术,可灵活设置缓冲功能是否启动及过期时间; 9、支持 Google 地图

PHP房产程序[BBWPS] 0
查看详情 PHP房产程序[BBWPS]

ps:我的问题没有考虑到为每个session的值设独立过期时间问题;

立即学习PHP免费学习笔记(深入)”;

回复内容:

session.gc_maxlifetime 设置的话,概率是 gc_probability/gc_divisor; 不明白为什么要这个规定;这个不明白原理

发现 session 会监视用户是否活动,然后会自动更新 session 文件的最后修改时间。

所以写了一个 function 读取 session 文件的最后修改时间,然后跟现在时间对比,如果大于设定的过期时间,假设是 10 分钟。就清空对应 session 的信息。这样可以吗?

有没有更好的方法?

ps:我是指不活动情况下过期时间

ps:我的问题没有考虑到为每个session的值设独立过期时间问题;

立即学习PHP免费学习笔记(深入)”;

推荐你看看 @Laruence 大神的文章 如何设置一个严格30分钟过期的Session

再附另一篇文章: 深入理解PHP原理之Session Gc的一个小概率Notice

PHP中SESSION过期,指的是,超过多少时间不活动,则过期。 如果用户有活动,每次活动时session都会重新write一次。即你说的会自动更新最后的修改时间。 比如,session设置20分钟过期,用户每分钟刷新一次,连续刷新60次,那么一个小时他还是在线的。因为他没有超过20分钟未活动。

看你的说法,你想指定让一个人在指定的时间内过期?即无论他是否活动?到达20分钟即退出? 如果是这样,你设置session.cookie_maxlife = 1200 即可。 因为session的session_id传递是使用cookie传递的,这样设置后,session_id在cookie中存活20分钟后过期,再刷新时,服务器会重新分配一个session_id,他就掉线了。

PS. 这其实也是一个PHP网站中常见的,不愿见的,用户会莫名掉线的问题分析。

设置session handle为memcache或者redis之类,即session的存储介质为nosql数据库,然后在此类介质中存储session值,设定严格的过期时间,这个是最精确的

跟问题没关系。自己封装的session,不用php自带的。莫踩。。

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号