php中session过期但记录并不删除的原因

来源:互联网 发布:免费打印支票软件 编辑:程序博客网 时间:2024/06/05 06:37

前一阵写了一个简单的类,将session存入数据库,当session_destroy()时会将库中的session记录删除,而过了maxlifetime时session记录却还在,当时很不理解。

今天又看了下php.ini,找到了关于session的配置,明白了原因。

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

session.gc_probability = 1
session.gc_divisor     = 1000

以上是默认配置,也就是session初始化的时候只有1/1000的概率启动GC process,这就是原因所在。

改变配置如下:

session.gc_probability = 1
session.gc_divisor     = 1

再试验一下,数据库中超期的session记录每次都会删除了,成功。

原创粉丝点击