2011-05-12 3 views
2

私はログインが必要なプライベートウェブアプリを持っています。誰かがログインしてあなたのWebページを閲覧しているかどうかを調べる方法

現在ログインしているサイトのメンバーを一覧表示するサイト(主にフォーラムサイト)が多数あります。

私はセッションバースの日時スタンプを見ていくつかの仮定をする方法を考え出すことができると思うが、そこに標準的な方法があるのか​​、またはその情報をキャプチャして表示するためのトリックがあるのだろうかと思っていた。

ここでコードを探しているのではなく、それを行うためのロジックを探しています。

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

答えて

3

最も一般的なアプローチは、ユーザーが何かを行うたびにタイムスタンプを更新し、定義された非アクティブ時間後にログアウトしているとカウントすることです。

セッション変数を使用すると、データベースのタイムスタンプをに更新する必要はありません。毎回ページが読み込まれます。この変数では、最後の更新のタイムスタンプを保持し、5分以上経過した時点で、dbとsessionのタイムスタンプを更新します。

+1

修正。ユーザーステータス(ログイン/ログアウト)をきわめて正確に判断する必要があるページでは、バックグラウンドでAJAXリクエストを行い、特定のユーザーがページに実際に滞在しているかどうかを確認できます記事やフォーラムのスレッドとその間に別のページに行っていない)。 – Tadeck

+0

だから、私が思っていたことは正しかった - 実際には、動き、活動、ログイン、ログアウトなどを記録することを除いてこれを行う特別な方法はない。私は何をする必要があるか分かっている。誰かのおかげです。 –

0

私はあなたのデータベースにバイナリ値を示唆し、ユーザーがサインオンしたときにそれを切り替えます。その後、ユーザーが長時間アイドル状態になっている場合、自動的にユーザーにサインアウトするJSタイムアウトを設定することができます。

+0

これは、Webユーザーの大多数のように、ページを離れたりブラウザを閉じるだけのユーザーをどのように扱いますか? –

+1

良い点。私は揚げている。私はその日のために外出し、家に帰るべきだと思う。 –

1

誰かがあなたのサイトを見ているときを知ることはできませんが、ユーザーがいつサーバーからページを最後に要求したかを判断できます。ユーザーが過去5分間に(例えば)ページをリクエストした場合、彼はまだアクティブであり、おそらくあなたのサイトのページを見ていると言えます。私が知る限り、それはアクティブなユーザーの数を決定する最も一般的な方法です。

1

どの程度細かいことをお探しですか?最近ログインしたユーザーのみを表示したいのですか、特定のフォーラム投稿を表示している(または最近表示した)ユーザーを表示したいですか?

前者の場合は、ログインと認証のフレームワークが現在どのようなものかによって異なりますが、基本的に期限切れでないセッションのクエリになります。

後者の場合、特定のページを閲覧したユーザーを保存する必要があります。 Users_Viewed_Pagesなどの結合表をタイムスタンプとともに使用できます。次に、特定のページについて、Page_IDで表を照会し、そのページを最近ロードしたユーザーを表示します。

+0

閲覧中です。私はログインとログアウトのルーチンをダウンしている。私はちょうどページを見ている人々を表示したい。 –

0

独自のsession handlerを実装し、アクティブなセッションをデータベースに格納します。これにより、ユーザーのアクティブなセッションを終了したり、すべてのセッションのログを保持したりすることも容易になります。

関連する問題