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 に答える