一个严格的PHP Session会话超时时间设置方法


Posted in PHP onJune 10, 2014

最近某个PHP项目用到了限制登录时间的功能,比如用户登录系统60分钟后如果没有操作就自动退出,我搜索了网络收集了有以下方法可供参考。

第一种方法即设置php.ini配置文件,设置session.gc_maxlifetime和session.cookie_lifetime节点属性值,当然也可以使用ini_set函数改变当前上下文环境的属性值:

ini_set('session.gc_maxlifetime', "3600"); // 秒

ini_set("session.cookie_lifetime","3600"); // 秒

第二种方法即设置Session时间戳,比如下面的办法。

在登录成功时设置时间戳为当前时间推后1小时,$_SESSION['expiretime'] = time() + 3600;。在检查用户登录情况使用如下代码:

if(isset($_SESSION['expiretime'])) {

    if($_SESSION['expiretime'] < time()) {

        unset($_SESSION['expiretime']);

        header('Location: logout.php?TIMEOUT'); // 登出

        exit(0);

    } else {

        $_SESSION['expiretime'] = time() + 3600; // 刷新时间戳

    }

}

根据文章《https://3water.com/article/52961.htm》,我们可以结合第一种和第二种方法来最终决定会话超时时间。
PHP 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
php 生成短网址原理及代码
Jan 23 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
php实现评论回复删除功能
May 23 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 PHP
解决CodeIgniter伪静态失效
Jun 09 #PHP
CI(CodeIgniter)框架介绍
Jun 09 #PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 #PHP
PHP小教程之实现链表
Jun 09 #PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 #PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 #PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 #PHP
You might like
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
ThinkPHP控制器详解
2015/07/27 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
laravel入门知识点整理
2020/09/15 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
js中有关IE版本检测
2012/01/04 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python温度转换实例分析
2018/01/17 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
冬季施工防火方案
2014/05/17 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书