2

ヘルプデスク システムを作成しています。ユーザーがシステムを使用せずに 2 時間以上経過し、セッションの有効期限が切れたときに戻ってくることがありますが、最後に読み込まれたページ (フォームなど) が画面に残り、ユーザーは使用できます。通常はそうですが、フォームを送信するとログイン ページにリダイレクトされますが (問題ありません)、ユーザーが入力したデータは失われます。セッションの有効期限が切れているかどうかを確認する AJAX 関数を作成したいと考えています。その機能は、setTimeout()またはを使用して実行する必要がありますsetInterval()。を使用してみました"sess_expiration"が、この値はページの読み込み時にリセットされないようです。つまり、指定された時間 (デフォルトでは 7200) が終了した後、セッションの有効期限が強制されます。

4

2 に答える 2

4

あなたはこのようにそれを行うことができます

$.ajax({
type : 'POST',
url  : '<?php echo site_url('controllername/methodname')?>'
success : function(data){
    if(data){
       //session available
    }else{
       // expired
    } 
});

そしてコントローラー方式

 function methodname(){
        $user_id = $this->session->userdata('user_id');
       if($user_id){
             echo 1;
       }else{
             echo 0;
       }
 }

ajaxリクエストを関数でラップし、TRUEまたはFALSEで毎回結果を返すことができます。さらに、setIntervalは、セッションをチェックするためにこの関数を呼び出すことができます。

于 2013-02-26T12:58:08.357 に答える
0

Codeigniter セッション クラスには、セッションの有効期限を知らせるメソッドがあります。

function your_method(){

     $this->session->sess_read() === false ? echo "0" : echo "1";

}
于 2014-07-08T12:57:05.023 に答える