解决php session自动失效的问题的方法

解决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 引用一个自动刷新页面

解决php session自动失效的问题的方法<iframeid="div_refresh"width="0"height="0"src="refresh.php"></iframe>

refresh.php内容如下:

解决php session自动失效的问题的方法<?php
解决php session自动失效的问题的方法
if(!isset($_SESSION)){
解决php session自动失效的问题的方法
session_start();
解决php session自动失效的问题的方法}
解决php session自动失效的问题的方法
?>
解决php session自动失效的问题的方法<html>
解决php session自动失效的问题的方法<head>
解决php session自动失效的问题的方法<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
解决php session自动失效的问题的方法<metahttp-equiv="refresh"content="300"/>
解决php session自动失效的问题的方法</head>
解决php session自动失效的问题的方法<body>
解决php session自动失效的问题的方法</body>
解决php session自动失效的问题的方法</html>解决php session自动失效的问题的方法

参考链接:

http://blog.centresource.com/2006/05/23/php-session-lifetime-an-adventure/

http://blog.serv.idv.tw/2005/05/05/233/