lichengcom2009 发表于 2017-3-29 10:38:53

关于php session自动失效的问题

  在一个使用session来实现的用户验证页面中,发呆时间半小时左右再刷新就发现已经退出登陆了
  察看php的文档时看到session的cookie确省设置应该是没有时间限制的。
  搜索了一下web,原来session还有一个服务器端的垃圾回收机制,确省配置在24分钟就清楚用户session数据
  ubuntu的LAMP缺省安装下,php.ini中有如下配置:
  ;After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
1440s = 24分钟后,用户session即失效。
  解决办法可以参考后面参考链接,有详细的介绍
  简单的解决办法:
  在需要长时间保持连接的页面增加 iframe 引用一个自动刷新页面

<iframeid="div_refresh"width="0"height="0"src="refresh.php"></iframe>

  refresh.php内容如下:

<?php
if(!isset($_SESSION)){
session_start();
}
?>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<metahttp-equiv="refresh"content="300"/>
</head>
<body>
</body>
</html>

  参考链接:
  http://blog.centresource.com/2006/05/23/php-session-lifetime-an-adventure/
  http://blog.serv.idv.tw/2005/05/05/233/
页: [1]
查看完整版本: 关于php session自动失效的问题