0


0

[PHP]オンラインユーザーとログインユーザーをどのようにカウントしますか、どのような方法ですか?

私は自分のサイトのログインスクリプトを作成しました。セッションの内容は基本的に次のようになります。

if($_SESSION['loggedin']=="Yes"){
//user online stuff
}

他のすべてのユーザーについては、セッションが設定されます

$_SESSION['loggedin']=="No";

はいまたはいいえに設定されているアクティブなセッションを表示するにはどうすればよいですか? mysqlテーブルを使用してcrontabを使用する必要がありますか? または、Apacheのtmp(セッションディレクトリ)内のファイルをカウントする必要がありますか?

最良の方法とは何ですか?

3 Answer


1


ユーザーをログイン情報とともにデータベースに保存し、ユーザーを認証するたびに確認することができます。 これは、認証にセッション変数のみを使用するよりもはるかに安全です。

ログインしているユーザーの記録にビットを設定し、ログアウト/セッションの有効期限が切れているときにビットをオフにし、オンになっているこれらのビットの数をカウントして、ログインしているユーザーの数をカウントできます人々はログインしています。


1


ここではCrontabは必要ありません。 最後のアクティビティの日付と時刻をどこかに保存し(mysqlデータベース?)、単純なselectを使用すると、一定のタイムアウト内でアクティブだったユーザーの数が表示されます。

このテーブルは、ログインしているユーザーのサーバー側の追跡に使用できます。 テーブルには、IPアドレス、X-Forwarded-For IPなどの追加情報も含まれる場合があります。


0


現在ログインしている実際のユーザーを表示する必要がある場合は、users mysqlテーブルの列を使用して現在のログイン状態を追跡し、cronjobを介して定期的な要求を行い、その情報を.txtファイルに保存することをお勧めしますログインしているすべてのユーザーに対して一度だけクエリを実行し、レンダリングされたhtmlに結果を含めることで結果を共有できます。 他の方法(セッションフォルダーストレージ内の読み取り)は可能ですが、より複雑で、おそらくあまり効果的ではありませんが、ベンチマークは行っていません。 とてもハッキーな感じです。