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

2015-01-24信息快讯网

这篇文章主要介绍了一个严格的PHP Session会话超时时间设置方法,着重点在于结合两种方法保证超时时间到,会话失效,需要的朋友可以参考下

最近某个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; // 刷新时间戳
    }
}

根据文章《http://www.jb51.net/article/52961.htm》,我们可以结合第一种和第二种方法来最终决定会话超时时间。

php基于base64解码图片与加密图片还原实例
set_exception_handler函数在ThinkPHP中的用法
用 Composer构建自己的 PHP 框架之使用 ORM
用 Composer构建自己的 PHP 框架之设计 MVC
用 Composer构建自己的 PHP 框架之构建路由
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Linux下安装PHP MSSQL扩展教程
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
php中__destruct与register_shutdown_function执行的先后顺序问题
PHP中使用Session配合Javascript实现文件上传进度条功能
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
自定义session存储机制避免会话保持问题
PHP会话控制:Session与Cookie详解
php使用$_POST或$_SESSION[]向js函数传参
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
解决CodeIgniter伪静态失效
浅谈Eclipse PDT调试PHP程序
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
浅谈PHP调用Webservice思路及源码分享
在PHP中使用X-SendFile头让文件下载更快
PHP is_subclass_of函数的一个BUG和解决方法
ECMall支持SSL连接邮件服务器的配置方法详解
PHP小技巧之JS和CSS优化工具Minify的使用方法
php开启openssl的方法
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
php中session过期时间设置及session回收机制介绍
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
yii框架配置默认controller和action示例
smarty模板中使用get、post、request、cookies、session变量的方法
php自定义session示例分享
©2014-2024 dbsqp.com