人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

●質問者: cochoo
●カテゴリ:ウェブ制作
✍キーワード:Pear PHP カウント ファイル ユーザー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● aiaida333
●28ポイント

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

◎質問者からの返答

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

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

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


2 ● b-wind
●42ポイント ベストアンサー

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

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

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

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


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

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

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

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

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

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

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

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

◎質問者からの返答

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

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

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

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ