php中设置session过期时间方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-05 22:14:45 浏览: 评论:0
在apache与php的环境中默认过期时间是20分钟左右,那么我们要怎么设置session过期呢,下面看具体方法总结。
我们最常用的是在php程序中设置,代码如下:
- <?php
- if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)
- $_SESSION['last_access'] = time();
- ?>
这样就搞定了,如果要设置过期的话也可以在程序中实现,代码如下:
- <?php
- unset($_SESSION['last_access']) 或 $_SESSION['last_access']='';
- ?>
session有效时间过期的机制
session.gc_maxlifetime 原来session 过期是一个小概率的事件,分别使用session.gc_probability和session.gc_divisor 来确定运行session 中gc 的概率 session.gc_probability和session.gc_divisor的默认值分别为 1和100,分别为分子和分母,所以session中gc的概率运行机会为1%,如果修改这两个值,则会降低php的效率,所以这种方法是不对的!
所以,修改php.ini文件中的gc_maxlifetime变量就可以延长session的过期时间了:(例如,我们把过期时间修改为86400秒),代码如下:
session.gc_maxlifetime = 86400
然后,重启你的web服务(一般是apache)就可以了。
session“回收”何时发生?
默认情况下,每一次php请求,就会有1/100的概率发生回收,所以可能简单的理解为“每100次php请求就有一次回收发生”,这个概率是通过以下参数控制:
- #概率是gc_probability/gc_divisor
- session.gc_probability = 1
- session.gc_divisor = 100
注意1:假设这种情况gc_maxlifetime=120,如果某个session文件最后修改时间是120秒之前,那么在下一次回收(1/100的概率)发生前,这个session仍然是有效的。
注意2:如果你的session使用session.save_path中使用别的地方保存session,session回收机制有可能不会自动处理过期session文件。这时需要定时手动(或者crontab)的删除过期的session:cd /path/to/sessions; find -cmin +24 | xargs rm
Tags: 设置 session 过期
- 上一篇:php session工作原理分析
- 下一篇:Mysql存储PHP Session
相关文章
- ·php简单设置与删除cookie代码(2013-11-13)
- ·php session永不过期的设置方法(2013-11-30)
- ·php cookie 读取 设置 删除实例(2013-12-19)
- ·php设置session生存时间详解(2014-02-16)
- ·php 设置 session详解(过期,失效,有效期)(2014-02-16)
- ·php cookie注销 设置 输出和注销学习笔记(2014-03-02)
- ·PHP中设置、使用、删除Cookie详解(2014-07-25)
- ·php 设置cookie与清除cookie方法(2014-08-17)
- ·php下session过期时间的设置方法(2014-09-22)
- ·php设置session值和cookies的学习示例(2020-11-01)
- ·session 的工作原理与session用法 (2013-11-12)
- ·PHP创建和使用session cookie变量(2013-11-13)
- ·session与cookie会话控制(2013-11-14)
- ·cookie和session 区别(2013-11-14)
- ·PHP 会话(session 时间设定)使用入门 (2013-11-14)
- ·关于使用session_start 出现的headers (2013-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)