php session expire 2 - yaokun123/php-wiki GitHub Wiki

如何设置一个严格30分钟过期的Session

那么, 最常见的一种回答是: 设置Session的过期时间, 也就是session.gc_maxlifetime, 这种回答是不正确的, 原因如下:

PHP是用一定的概率来运行session的gc的, 也就是session.gc_probability和session.gc_divisor, 这个默认的值分别是1和100, 也就是有1%的机会, PHP会在一个Session启动时, 运行Session gc. 不能保证到30分钟的时候一定会过期。

方案

1、使用memcache, redis等
2、自己为每一个Session值增加Time stamp、 每次访问之前, 判断时间戳