1

default_ci_sessionspyrocms にはテーブルがあります。これは、このテーブルを使用して行う必要があると思います。このテーブルのフィールドは次のとおりです。

1   session_id  varchar(40)
2   ip_address  varchar(16)
3   user_agent  varchar(120)
4   last_activity   int(10)
5   user_data   text    

サンプル行:

1   70bb123786d01c0be696e98cb1f6622e
2   0.0.0.0
3   Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
4   1336371726
5   a:7:{s:9:"user_data";s:0:"";s:8:"username";s:5:"admin";s:5:"email";s:22:"abc@gmail.com";s:2:"id";s:1:"1";s:7:"user_id";s:1:"1";s:8:"group_id";s:1:"1";s:5:"group";s:5:"admin";}

私は自分のローカルホストで開発を行っていますが、(上記の) ユーザーが 1 人しか登録されていません。テーブルの内容を見る前に考えていたのは、ご存知のように、そのテーブルには 1 つのレコードがあるはずだということでした :)。しかし、ゲスト ユーザーの session_ids と私のユーザー (管理者) の 10 行を含む 120 のレコードが既に存在します。last_activity唯一の方法は、このフィールドで何ができるかを理解することだと思います。

そして、トピック外の質問: なぜそんなに多くのセッションがあるのですか? それらはアクティブなセッションではありませんか? ユーザー名ごとにそれらをすべてグループ化し、最大のものを選択できlast_activityますか?

4

1 に答える 1

1

最後のアクティビティが 24 分以内である (24 分は、ブラウザーのデフォルトでセッションが保持される時間です)。

したがって、クエリでは、それらのレコードをdefault_ci_sessions where last_activity >= NOW() - INTERVAL '24' MINUTES...から数えます

于 2012-06-01T15:11:35.607 に答える