PHPのPEAR::Authでログイン処理を実装しています。


ある時点でログインしているユーザー数をカウントしたいのですが、よい方法が思いつきません。
単純に、ログイン毎に外部ファイルにカウントしていく方法もあるのですが、
外部ファイルに管理情報を持ちたくない理由があり、できれば、$_SESSIONやAuthの機能を駆使してログイン数をカウントしたいと考えています。

よいお知恵がございましたら、ご教授をお願いいたします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2009/11/23 12:36:42
  • 終了:2009/11/24 03:04:21

ベストアンサー

id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402009/11/23 13:59:13

ポイント42pt

まず大前提としてウェブアプリケーションにおいてはログアウトの概念が曖昧であることに注意してください。

たとえばログアウトボタンを押したタイミングははっきり分かっても、いきなりブラウザを閉じられると

その後どうなったかを正確に判別することは難しいということです。

この為一定時間アクセスが無い場合、ログアウトと同等とみなすことが多いです。


データベースに格納された他のカラムの取得 - ユーザー認証(PEAR::Auth) - PEAR入門

PEAR::Auth であれば自分で追加したカラム情報も取り出せるのでそこにログインを判定する

情報を入れて置くようにすればいいかと思います。

認証後のアクセスごとに最終アクセス時間を記録しておくのも一つの手ですし、

単純に login 時と logout 時に更新するフラグを持っておくのも手です。

Manual :: ログインに成功した際のコールバックを設定する

Manual :: ログアウトに成功した際のコールバックを設定する

上記のコールバック関数内でデータを更新するようにすれば実現可能のはずです。

id:cochoo

ご回答いただきありがとうございます。

やはり、手動でログイン時とログアウト時にフラグなどの操作が必要ということですね。

Authが自動的にログインの状態を保持しているのであれば、

b-windさんのおっしゃるようなログアウトの問題が設計者が意識しなくても、

Authの処理判断に追従してある程度解決できるのでは、と考えていましたが、そう甘くはないですね(笑)

ログインの状態をAuthの他のカラムに保存することでうまく動作しました。

皆様、ありがとうございました。

2009/11/24 03:04:14

その他の回答(1件)

id:aiaida333 No.1

aiaida333回答回数166ベストアンサー獲得回数42009/11/23 12:50:42

ポイント28pt

データベースにアクセスhttp://q.hatena.ne.jp/1258947401

id:cochoo

早速のご回答ありがとうございます。

それは、DBにカウンタを持つということでしょうか?

期待値は、Auth機能などにログインの状態を示す情報があればと思っているのですが。

2009/11/23 13:15:06
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402009/11/23 13:59:13ここでベストアンサー

ポイント42pt

まず大前提としてウェブアプリケーションにおいてはログアウトの概念が曖昧であることに注意してください。

たとえばログアウトボタンを押したタイミングははっきり分かっても、いきなりブラウザを閉じられると

その後どうなったかを正確に判別することは難しいということです。

この為一定時間アクセスが無い場合、ログアウトと同等とみなすことが多いです。


データベースに格納された他のカラムの取得 - ユーザー認証(PEAR::Auth) - PEAR入門

PEAR::Auth であれば自分で追加したカラム情報も取り出せるのでそこにログインを判定する

情報を入れて置くようにすればいいかと思います。

認証後のアクセスごとに最終アクセス時間を記録しておくのも一つの手ですし、

単純に login 時と logout 時に更新するフラグを持っておくのも手です。

Manual :: ログインに成功した際のコールバックを設定する

Manual :: ログアウトに成功した際のコールバックを設定する

上記のコールバック関数内でデータを更新するようにすれば実現可能のはずです。

id:cochoo

ご回答いただきありがとうございます。

やはり、手動でログイン時とログアウト時にフラグなどの操作が必要ということですね。

Authが自動的にログインの状態を保持しているのであれば、

b-windさんのおっしゃるようなログアウトの問題が設計者が意識しなくても、

Authの処理判断に追従してある程度解決できるのでは、と考えていましたが、そう甘くはないですね(笑)

ログインの状態をAuthの他のカラムに保存することでうまく動作しました。

皆様、ありがとうございました。

2009/11/24 03:04:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません