会话超时脚本在MAMP和托管帐户之间的行为不同

时间:2012-06-07 00:45:40

标签: php session timeout

我有以下会话超时设置:

$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分钟不活动后超时。

我对可能导致这种情况的原因感到难过?有没有人经历过这样的事情?我可以检查哪些设置?

1 个答案:

答案 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');