1

データベースに保存されたセッションと CodeIgniter 2.1.3 の TankAuth を使用しています。全体的なセットアップは、TankAuth がユーザーがログインしているかどうかを確認することです。

$this->tank_auth->is_logged_in()

これは libraries/Tank_auth.php を指します

function is_logged_in($activated = TRUE)
{
    return $this->ci->session->userdata('status') === ($activated ? STATUS_ACTIVATED : STATUS_NOT_ACTIVATED);
}

セッション クラスを初期化する必要があります。これにより、データベースに新しいセッションが作成されます。

ログインしていないユーザーの空のセッションでデータベースがいっぱいになるため、これを回避する方法があるかどうか疑問に思っています。

この問題に取り組む方法についてのアイデア/提案はありますか?

4

1 に答える 1

0

NON ACTIVE SESSIONS を削除するには、次の 2 つの方法があります。

  1. ユーザーがログアウトするたびに、その行をDBから削除し、次のようなセッション破棄関数を呼び出します

    $this->CI->DB_Master->where('session_id', $session['session_id']); $this->CI->DB_Master->delete($this->session_table); $this->sess_destroy();

  2. DBデータに基づいて特定の時間間隔ごとに実行するcronジョブを実行し、非アクティブユーザーに対応する行を削除します。

于 2012-12-03T05:50:46.257 に答える