2

非アクティブ状態が 10 分間続くと、ユーザーを自動ログアウトする方法が必要です。これには、ブラウザを離れるときも含まれます。

ログインが必要なすべてのページでこのコードを使用します。

function CheckLogin()
{
     if(!isset($_SESSION))
     { 
     session_start();

     }


     $sessionvar = $this->GetLoginSessionVar();

     if(empty($_SESSION[$sessionvar]))
     {
        return false;
     }
     return true;
}

また、私が行った以前の方法では、ホームページに戻る必要があり、その後自動ログアウトされました。ページに戻る必要がない可能性はありますか?

4

3 に答える 3

4

Yes. session.gc_maxlifetime is exactly what you are looking for:

ini_set('session.gc_maxlifetime', 600);

http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

于 2012-08-08T18:24:18.710 に答える
1

タイムアウトを実装するには、2 つの方法があります。1 つはサーバー側から、もう 1 つはクライアント側からです。クライアント側の機能はより楽しいユーザー エクスペリエンスを提供するだけであり、実際にはアプリケーションの認証と対話しないため、サーバー側の実装がより重要であることはほぼ間違いありません。

サーバ側

ユーザーがログインしていることを確認するログインチェック機能が必要です。質問で疑似機能について言及したので、そこから展開します。

 function CheckLogin()
 {
      // Is the user logged in?
      if(session does not exist)
      {
           // redirect
           // redirect or return false
      }
      else
      {
           if(session is valid)
           {
                // user is logged in
                // redirect or return true
           }
           else
           {
                // redirect or return false
           }
      }
 }

クライアント側

jquery と、Jim がリンクしているプラ​​グインhttp://www.erichynds.com/jquery/a-new-and-improved-jquery-idle-timeout-plugin/が必要です。Javascript ファイルを作成してリンクし、サイト全体に含めます。プラグインのリンクにあるドキュメントに従ってください。かなり徹底しています。

また、セッションに関連付けられた Cookie (存在する場合) を 10 分後にタイムアウトするように設定することも最善の方法です。

于 2012-08-08T19:01:36.070 に答える
0

アイドル タイムアウトと呼ばれる JQuery プラグインもあり、うまく機能します。タイムアウトしたときに人をどこに送るかなど、2 つまたは 3 つのパラメーターを設定します。ここにリンクがあります http://www.erichynds.com/jquery/a-new-and-improved-jquery-idle-timeout-plugin/

于 2012-08-08T18:27:28.633 に答える