今天复习session,有了更进一步的理解,同时也有几个疑惑,请大家帮忙分析一下哈。第一个问题,在php里,session是有垃圾回收机制的,原理是触发多少次session_start就可能触发垃圾回收机制。那么我的问题是,如果我的session已经过了1440秒,但是此时没有立即触发回收,可能5分钟内也没触发,此时我还能获取到session的数据么?第二个问题,关于session的过期原理,书本上说的都说是按照session文件的修改时间。我的疑问如下:1)我普通访问一个网站,在没有修改session数据的情况下,是不是在1440秒后准确退出。2)还是说我每刷新一次网页,session文件都会修改filemtime呢?session的执行原理是怎样的。第三个问题,就是php的session_set_save_handler设置问题了,只有知道了session是怎么处理filemtime的,才能写好session_set_save_handler中的read方法,因为如果是每刷新一次网页就算修改filemtime的话,势必要在read中修改filemtime吧。
2 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
经过试验,在文件存储的情况下,设置session.gc_maxlifetime为30秒,在超过30秒的情况下,仍然可以出去session数据。并且在下次刷新的情况下,filemtime确实会改成当前。
谁能来解释一下为什么,并且把自定义储存改为memcache或者数据库会和文件存储形式一样么。
添加回答
举报
0/150
提交
取消