0

我有以下会话超时设置:

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

我很困惑这可能是什么原因造成的?有没有人经历过这样的事情?我可以检查哪些设置?

4

1 回答 1

0

可能您在 MAMP 和其他托管环境上将 session.gc_maxlifetime 设置为不同的值,session.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');
于 2012-06-07T01:40:05.320 回答