在一个使用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 引用一个自动刷新页面
<
iframe
id
="div_refresh"
width
="0"
height
="0"
src
="refresh.php"
></
iframe
>
refresh.php内容如下:
<?
php
if ( ! isset ( $_SESSION )) {
session_start ();
}
?>
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=gb2312 " />
< meta http - equiv = " refresh " content = " 300 " />
</ head >
< body >
</ body >
</ html >
if ( ! isset ( $_SESSION )) {
session_start ();
}
?>
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=gb2312 " />
< meta http - equiv = " refresh " content = " 300 " />
</ head >
< body >
</ body >
</ html >
参考链接:
http://blog.centresource.com/2006/05/23/php-session-lifetime-an-adventure/