我有以下会话超时设置:
$inactive = $Timeout;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive) {
session_destroy();
header("Location: index.php?page=login");
}
}
$ Timeout是从数据库条目中获取的。目前设定为1800。
每次用户点击链接或执行操作时,我都会
$_SESSION['timeout'] = time();
在MAMP上,它按预期工作,会话在30分钟不活动后到期。
在托管帐户(ipower)上,似乎在大约5分钟不活动后超时。
我对可能导致这种情况的原因感到难过?有没有人经历过这样的事情?我可以检查哪些设置?
答案 0 :(得分:0)
您的MAMP和其他主机环境会话中可能会将session.gc_maxlifetime设置为不同的值..gc_maxlifetime设置为默认值。
请参阅http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
我做了一些搜索,似乎是ipower的一个问题试试这个,
要在iPower上运行PHP会话,您必须将以下代码行添加到使用会话的任何PHP脚本的顶部:
session_save_path('/path_to_your_home_dir/dir_to_use_for_session_data');