一个严格的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
文件上传程序的全部源码
Oct 09 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
PHP中批量生成静态html(命令行下运行PHP)
Apr 19 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
PHP对象相关知识总结
Apr 09 PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 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
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
javascript读取RSS数据
2007/01/20 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
python通过http下载文件的方法详解
2019/07/26 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
公务员总结性个人自我评价
2013/12/05 职场文书
干部行政关系介绍信
2014/01/17 职场文书
大学生的自我鉴定范文
2014/01/21 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang