如果应用程序超过给定的idel时间,如何使用php销毁会话
在我的程序中,出于安全目的,如果应用程序超过其空闲时间,则有必要销毁会话变量 //以秒为单位设置超时时间 $300 //检查一下 已设置$\u会话['timeout'] 如果(isset($\u会话['timeout'])){ $session_life=时间()- $\u会话['start'];如果($SESSION\u life) 美元(非活动) {session_destroy();头(“Location:logout.php”);} $\会话['timeout']=time() 但是这段代码每5分钟刷新一次会话变量,我想知道如果系统处于空闲时间,如何销毁会话变量。另外,请告诉我,如果我破坏会话变量,会产生任何其他问题。提前感谢 @编辑:如果应用程序超过给定的idel时间,如何使用php销毁会话,php,Php,在我的程序中,出于安全目的,如果应用程序超过其空闲时间,则有必要销毁会话变量 //以秒为单位设置超时时间 $300 //检查一下 已设置$\u会话['timeout'] 如果(isset($\u会话['timeout'])){ $session_life=时间()- $\u会话['start'];如果($SESSION\u life) 美元(非活动) {session_destroy();头(“Location:logout.php”);} $\会话['timeout']=time() 但是这段
由于会话数据在会话超时后被视为垃圾,因此实际上不需要执行任何操作。这应该足以确保定期清理垃圾。因此,只需调用创建虚拟会话的页面(每分钟一次)就足够了。垃圾收集器频率也可以在php.ini中配置 但是,您可以通过监视会话(在文件/数据库/内存中)轻松验证这一点 试试这个:
- 编辑php.ini-将session.cookie_寿命设置为以秒为单位的预期值(5分钟为300秒)李>
- 重新启动apache服务器
- 登录
- 5分钟后测试会话变量(应已过期)
因此,您必须将其设置为:默认值为零-因此它将永远不会过期,除非有人关闭浏览器窗口。请将代码缩进4个空格,而不是使用
。这是工具栏中的{}
按钮,而不是“
按钮。但取消设置功能有一个缺点,即清除所有会话,这在某些情况下可能并不理想。它不会清除所有会话。只是当前会话中的所有变量。为什么php应该允许页面取消设置其他用户的数据?我承认,php文档在这里听起来有点误导。