首页 > 编程知识 正文

session可以设置过期时间吗,session最大过期时间

时间:2023-05-05 02:57:14 阅读:173722 作者:2410

在apache和php环境中,默认过期时间为20分钟左右,如何设置session的过期时间呢? 总结一下具体的方法吧。

我们最常用的是在php程序中设置,代码为以下:

if (! isset ($ _ session [ ' last _ access ' ]|(time )-$_SESSION['last_access'] ) 60 )

$_SESSION['last_access']=time (;

到此结束。 设定有效期限时,也可以通过程序来实现。 代码是下一个:

unset($_session('last_access ' ) )或$_session('last_access ' )=' ';

session过期的机制

session.gc_maxlifetime原本是session过期的低概率事件,分别使用session.gc_probability和session.gc_divisor

因此,更改php.ini文件中的gc_maxlifetime变量会将session的过期时间延长:秒。 例如,将过期时间更改为86400秒。 代码是下一个3360

session.gc_maxlifetime=86400

然后,重新启动你的web服务(一般是apache )就可以了。

session“回收利用”什么时候发生?

因为默认情况下每个php请求的回收概率为1/100,所以您可能会简单地理解为“每100次php请求就发生一次回收”。 该概率通过以下参数控制:

#概率为gc_probability/gc_divisor

session.gc_probability=1

session.gc_divisor=100

注意1 :假设该状况为gc_maxlifetime=120,则如果某个session文件的最终修改时间为120秒前,则在发生下一次再利用(1/100的概率)之前,该session仍然有效

注意2 :如果session在session.save_path中使用其他位置保存session,则session回收机构可能不会自动处理过期的session文件。 在这种情况下,必须定时手动(或crontab )删除过期的session:cd /path/to/sessions。 find -cmin 24 | xargs rm

(责任编辑: admin )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。