在一个使用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
>
参考链接:
http://blog.centresource.com/2006/05/23/php-session-lifetime-an-adventure/
280

被折叠的 条评论
为什么被折叠?



