2012-02-26 4 views
3

訪問者がまだ自分のIPアドレスを使ってオンラインになっているかどうか確認できますか?訪問者のIPアドレスがまだアクティブかオンラインかを確認する方法は?

onLoadとonBeforeUnloadイベントを使用して自分のページを開くときに、訪問者のIPアドレスを確認するためのjavascriptとphpがすでに作成されています。しかし、私のスクリプトは、訪問者がまだ私のサイトを開いているかどうかを検出できない場合があります。 onBeforeUnloadは常に信頼できるものではないためです。

この場合、訪問者がまだオンラインかどうかを検出する他の方法があるかどうかを知りたいと思います。

他のサイトを閲覧している、または他のプログラムを実行している可能性があるため、訪問者はまだページを開いていますが、読んでいないと思います。

訪問者がブラウザを閉じたが、スクリプトがアンロードイベントを検出できなかった場合、私は彼/彼女がまだオンラインかどうかを知りたいと思う。

PHPまたはjavascriptは問題ありません。

答えて

10

ajaxを使用してサーバーに「ping」(リクエストを送信し、空白にすることができる)するJavaScriptコードを作成する必要があります。このリクエストは、そのユーザーをPHPでアクティブにする(マークアップする)ことができます(おそらく、データベース内で、または使用するストレージ方法によって)。そのストレージを参照して、ユーザーがオンラインであるかどうかを確認できます。

また、AJAXを使用せずに使用することもできますが、サイト内で毎回(ページを移動するたびに)この「ping」を行う必要があります。このようにして、ログインしている限り、訪れたすべてのページのPHPが「マーク」されます。

ユーザが特定のしきい値以上(「30分」など)に「マーク」された場合、

この機能にはIPアドレスは必要ありません。あなたは、ユーザーがまだオンラインとしてマークされていることを知る必要があります。

+1

downvoter、あなたは何を言うことができますか? – Joseph

2

訪問者はブラウザを閉じたが、スクリプトはアンロードイベントを検出できなかった場合、私は彼/彼女がまだオンラインかどうかを知りたいと思う。

これはかなり不可能です。
そして私はそれを何かする理由がないのではないかと思う。

+0

もちろん、理由があり、多くのサイトが同様のことをしています。掲示板について考えてみると、通常、オンラインにいるユーザーの数、過去5〜10分でアクティブだったユーザーの数が表示されます。私は多くのサイトがインラインになっているユーザーの数を教えているのを見てきました。 オフラインになったときを知ることなく、オンラインユーザーの正確な数を取得することは不可能です。 これにはいくつかの方法がありますが、他の方法よりも優れていますが、確かに実行できます。 –

+0

LOL、これは架空の番号です。最後のユーザーの行動から概算されます:)この無駄な数字の正確な数は誰も必要としません。 –

2

私の知る限り、最も信頼できる方法はNodeにnow.jsを使用することです。シンプルなサーバーをセットアップし、接続と切断を待ち受けることができます。あなたがあなたのPHPに必要なデータを送信したり、ノードで処理したりすることができます。

関連する問題