October, 2020Archive for

Thinkphp如何有效的设置session过期时间

thinkphp提供了一个参数让我们配置session过期时间。 'SESSION_OPTIONS' = array( expire => 3600 ); 然而这一配置是否真的有效?在多次测试之后,不遂人意。 why?那我们试着从源码上分析这个配置参数的,它是怎么让尝试着然我们的session过期的。 上图在中展现了框架对session有效期的操作,它设置了php.ini中的两个变量“session.gc_maxlifetime”和“session.cookie_lifetime”的值。 那么我们继续追问?这个两个参数就能让session按照自己设置的时间过期? 我们看看这两个参数代表着什么? session.gc_maxlifetime:session的有效生存时间,过了这个时间session将进入销毁队列。 session.cookie_lifetime:值为0代表关闭浏览器,保存在客户端的sessionid将立即失效。 session.gc_maxlifetime这个是关键,但过了这个时间并不能马上销毁,这又...

php session有效期的问题

PHP中的session有效期默认是1440秒(24分钟)【weiweiok 注:php5里默认的是180分】,也就是说,客户端超过24分钟没有刷新,当前session就会失效。很明显,这是不能满足需要的。PHP中的session有效期默认是1440秒(24分钟)【weiweiok 注:php5里默认的是180分】,也就是说,客户端超过24分钟没有刷新,当前session就会失效。很明显,这是不能满足需要的。 一个已知管用的方法是,使用 session_set_save_handler,接管所有的session管理工作,一般是把session信息存储到数据库,这样可以通过SQL语句来删除所有过期的session,精确地控制session的有效期。这也是基于PHP的大型网站常用的方法。但是,一般的小型网站,似乎没有必要这么劳师动众。 但是一般的Session的生命期有限,如果用户关闭了浏览器,就不能保存Session的变量了!那么怎么样可以实现Session的永久生命期呢? 大家知道,Session储存在服务器端,根据客户端提供的SessionID来得到这个用户的文...