質問: 題にある通りなのですが ログイン中、つまりその会員サイトに滞在中のユーザーの情報を取得したいという考えです これにはそれぞれのユーザーのアクセス状況というべきか、 ログイン状況、オンライン状況のようなものが必要だと思っています。 それらをリアルタイムに送信し続ける、、 それをデータベースに格納して値を変化をさせ続ける ログイン中のユーザーの一覧を見たいユーザーはそのデータベースを参照してログイン中のユーザーを引っ張ってくる、、というような方針なのですがいかがでしょうか? リアルタイムに送信、取得するなどはajaxの技術を使う、、という認識です あともしよろしければログイン中のユーザーがサイトを離れたときの処理を記述する方法を教えていただければより理解が深まると思います! 抽象的であいまいな質問で分かりにくいですがご教授ください!
回答: 上の私のコメントでお願いした「滞在中」の定義が出てこないようですので、自分が現実的と思う案を書いておきます。 多分、ユーザー情報を DB に保持して、ログインの際はユーザーが入力する情報と DB の情報に基づいてユーザー認証を行い、認証チケットを発行し、ログイン後のアクセスは認証チケットをやり取りすることにより再ログイン操作が不要というような一般的な認証システムを実装するのだろうと想像してます。 認証システムが独自実装でなく、何かのフレームワークを利用するのなら、そのフレームワークに質問者さんがやりたいことが、100% ではなくてもある程度可能な機能が実装されてないかを調べてみましょう。 例えば ASP.NET の Forms 認証システムの場合、ユーザー情報のストアとなる DB のテーブルには、ID, Password 以外に LastActivityDate というフィールドがあり、ログインしたとかその後要求を出したなど何らかのアクティビティがあれば、その日時を更新する仕組みになっています。 現時点でユーザーがオンラインか否かは、その「現時点」から UserIsOnlineTimeWindow の分数(デフォルトで 15 分。構成ファイルで設定変更可)値を引いた値と LastActivityDate の値を比較して、そのユーザーがオンラインか否かを判定するということになっています。 PHP は自分は全く知りませんが、既存のフレームワークにそのようなユーザー認証システムがあるかを調べてみてはいかがですか。 ユーザー認証システムを質問者さんが独自実装するなら、上に述べた ASP.NET の Forms 認証と同様な実装をしてはいかがですか。 ブラウザから一定時間間隔で滞在証明をサーバーに送るような仕組みを実装するというのは、質問者さんの力量やサーバーの負荷を考えた場合、果たして現実的なのかどうか考えてみてください。 それを実装しても、ユーザーがブラウザを閉じないまま席を外してどこかに行ってしまったことは分かりません。労力の割にはあまり意味がなさそうな気がします。