解决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>
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/
本文地址:http://www.45fan.com/dnjc/70182.html