2012-02-23 7 views
0

ウェブサイトの訪問者のIPアドレスを使用して訪問の長さを検出することは可能です。しかし、私はPHPスクリプトを使用して自分のサイトで何時間または何分もオンラインであることを知ることができますか?IPアドレスで「訪問の長さ」を検出するにはどうすればよいですか?

+2

「訪問の長さ」はどのように定義しますか?あなたのページはブラウザでどのくらい開いていますか?また、IPアドレス!==ユーザ。 – deceze

+0

ページではありませんが、サイト –

+0

、つまり自分のサイトでオンラインになっている時間です。 – jaypabs

答えて

1

正確なデータを収集することはできませんが、このように近接呼び出しを行うことができます。

a)ユーザがいつIPアドレスを参照してログインするかを決定します。

b)ユーザーがウェブサイトを離れるときを検出します。

最初に、データベースに保存してWebサイトを閲覧しているIPアドレスのレコードを作成することができます。

あなたのウェブサイトを閲覧しているユーザーを特定するには、ユーザーがWebサイトにアクセスするとすぐにIPアドレスを取得して、ログイン時間とともにどこかに格納してみてください。たとえば、次のレコードを使用してデータベースに格納することができます。

ipAddress | LoginTime | LogoutTime 

誰かがあなたのウェブサイトに入るとすぐに、ログイン時に自分のレコードにipAddressを保存します。保存する前に、重複が存在しないことを確認する必要があります。つまり、そのipAddressが既に存在するかどうかをチェックする前に保存します。それが存在する場合は、ユーザーがまだあなたのウェブサイトを閉じていないことを意味します。

ユーザーがあなたのウェブサイトから離れるときを判断する必要があります。window.onunloadを使用すると、ユーザーがウェブサイトを離れるときにわかるはずのjavascriptでこれを行うことができます。ユーザーがWebサイトを離れるときを知るためにajax呼び出しを行うことができます。

$(window).bind('beforeunload', function() { 
    // ajax call 
    // write to db.. 
}); 

ユーザーが入ってきたときに知っているし、あなたのウェブサイトを残すことができるこの方法。私はこれがそれであるとは言いません。しかし、これはあなた自身のロジックを構築するのを理解するのに役立ちます。これがあなたを助けることを望みます。

+0

こんにちは、私は匿名の訪問者を追跡したいと思います。彼らは私のサイトをもう閲覧していないことをどのように知っていますか? – jaypabs

1

いいえ、それは。訪問者が最後のページを閉じたときに決して知らないあなたのために正確な「サイト内の時間の滞在」を検出することはできません

しかし、あなたはおおよその時間を得ることができますは、間の時間を計算買います最初の訪問と最後の1日の訪問、または他の何か。あなたは各訪問の時間と "IPから"を保存してから計算することができます。

さらに、おそらく最善の解決策はサードパーティの分析サービスGoogle analytics。無料で非常に強力です。

+2

@Col。 Shrapnel:あなたは私の最初の行を読んだだけですね。最初に私はそれが正確ではないと言った、第二に私は "大雑把な近似"メソッドを提供し、最後に私は彼に、これを行うための分析サービスを使用するように提案します。 – dennisyuan

0

これを行う簡単な方法はAjax経由で。

ユーザーのセッションを開くか開始し、1分に1回Ajaxにサーバーにpingを実行させます。

ログまたはdbまたはフラットでは、そのIPのセッションの開始時間を記録し、最後のping時間を記録できます。

最後のping時間を記録し続ける場合は、その範囲内に近づける必要があります。ユーザーの訪問時間の分。

UPDATE:

あなたはメタリフレッシュごとに60秒で非表示のiframeで同じことを行うことができます。答えのポイントは、AJAXで例を挙げてポスターを手助けする代替技術を提案することでした。これがもちろん達成できる他の方法があります。

+0

... JavaScriptをオフにしているユーザーについてはわかりません。 (私はあなたの答えを落としていませんでした!正直なところ!) – Arsen7

+0

これはiframeメソッドのためのものです。それはリフレッシュを行うためにjavascriptでないメタタグを使用します。したがって、両方のユーザータイプを取得します(有り、無し)。メタメソッドとJSメソッドの両方で、ping時間を60秒よりはるかに短く設定することができます。 – MyStream

0

これを行うには、セッションストアにアクセスすることとはまったく異なる方法です。

セッションが保存されているフォルダにアクセスできる場合は、最も最近更新されたセッションまたは最も古いセッションのリストを取得できます。一定期間何かが非アクティブになっている場合、セッションファイルがどれくらいの期間保守されていないかによって、セッションがどれだけ非アクティブであるかを識別できます。

これは、ユーザーがサイトにいる間にセッションファイルを更新する方法を決定するために、アプリケーション/ Webサイトに依存します。自分のIPをセッションファイルに保存すると、ファイルからこれを再度読み取ることができます。

これはまた、サーバーがセッションファイルをリセットする頻度にもよりますが、これらが管理している場合は、考慮する価値のある別のテクニックです。