在 PHP 中设置过期时间的最简单方法是修改 PHP 配置文件。
概述:每次 PHP 请求时,都有 1/100 的概率(默认值)触发一次“回收”,如果发生“回收”,则会检查 /tmp/sess_* 下的文件,如果最后修改时间超过 1440 秒(该值),则会删除,也就是过期了。
1.它在客户端是如何存在的(通常用PHP)?
默认情况下,PHP 会将其保存在/tmp 目录下,文件名如下:。每个文件对应一个()。
更多/tmp/
|s:9:“”;管理员|s:1:“0”;
#变量名 | 类型:长度:值
这里删除文件意味着对应的文件将失效。
2.它在终端(通常是浏览器)是如何存在的?
在浏览器端,只需要保存ID(客户端生成的唯一ID)即可。保存方式有两种:浏览器内、URL内。如果将ID保存在浏览器内,则可以看到浏览器中有一个变量。如果是通过URL传递的,则可以看到类似这样的内容:
index.php?= URL。(在末尾使用 . 来控制使用哪种方法)
3.在客户端,PHP 如何判断文件是否过期?
如果“最后修改时间”距离“现在”超过(默认为 1440)秒,则认为文件已过期。下次回收时,如果文件没有被更改,则会将其删除(已过期)。
如果你登录某个网站,在1440秒(默认值)内没有进行任何操作,则相应的登录被视为过期。
因此可以通过修改php.ini文件中的变量来延长过期时间:(例如修改过期时间为86400秒)
.= 86400 然后,重新启动服务器。
注意:
PHP5在过期的时候采用回收机制。
这里设置的时间为86400秒,如果86400秒内没有修改,那么在下次“回收”的时候就会被删除。
3.“回收”何时发生?
默认情况下每个PHP请求都有1/100的概率被回收,所以可以简单理解为“每100个PHP请求就会发生一次回收”。
该概率由以下参数控制:
#概率是/
. = 1
. = 100
注意:
1、假设此情形=120,如果某个文件最后修改时间是120秒之前,那么在下次回收前它仍然有效(概率为1/100)。
2. 如果在其他地方使用 . 保存,回收机制可能不会自动处理过期文件,此时需要手动(或)定期删除过期文件:cd /path/to/; find -cmin +24 | xargs rm
4. 特殊情况
由于回收机制会检查文件的“最后修改时间”,如果某个会话处于活动状态,但是内容没有发生改变,则对应的文件也没有发生改变,回收机制会认为它长时间处于非活动状态,从而将其删除。
可以通过下面的代码解决这个问题:
如果(!isset($[''])||(time(-$[''])>60)
$[''] = 时间();
代码将每 60 秒尝试修改一次。
总结:
如果要修改过期时间,只需修改该变量即可。
PHP5 使用被动恢复机制()。
过期的文件不会自行消失,而是通过触发“回收”来处理。
我要说的就这么多,希望对大家有帮助。
扫一扫在手机端查看
-
Tags : php $.ajax设置全局session过期弹出提示
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。