3

これは非常に幅広い質問です。私はちょうどそれを行うための最良の方法を探しています.

微分できるようになりたいですunique user。ユーザーが特定のページにいつアクセスしたかを追跡できる必要があります。

私と他の人々が遭遇した問題は次のとおりです。

  • を使用してIP addressも効果的ではありません。IP address
  • COOKIESユーザーが一定期間内に自分の Cookie を消去すると、使用時に問題が発生します。
  • セッションの有効期限が切れると、使用SESSIONS時に問題が発生します。

3 つすべての組み合わせを検討していますが、これですべての例外がキャッチされるわけではないと確信しています。YouTubeが動画の再生回数を追跡する方法に似たシステムが必要です。

誰かがこれに他のアイデアを持っていますか? (ユーザーシステムの実装は別として)

4

3 に答える 3

2

Cookie を使用せず、ユーザーが自分自身を識別するためにログインする必要がない場合、ユーザーが「一意」であるかどうかを判断することはほとんど不可能です。役立つ方法がいくつかありますが、どちらも保証されていません。

実際の「ユーザー管理システム」を必要とせずに、PHP セッションを使用できます。

session_start();
$id = session_id();
  • これの利点は、セッションがアクティブである限り、現在のユーザーを追跡できることです。

  • 欠点は、セッションがクリアされた古いユーザーである場合 (ユーザーが Cookie をクリアした場合と同様)、「新しいユーザー」が一意であるかどうかを判断できないことです。

$_SERVER別の方法として、IP アドレスのみを使用する場合と同様に、環境情報からのさまざまな変数を使用して、可能な限り最良のフィンガープリンティング アルゴリズムを試行することもできます。

$userFingerprint = $_SERVER['REMOTE_ADDR'] . ':' . $_SERVER['HTTP_USER_AGENT'] . ':' . $_SERVER['HTTP_ACCEPT']; // plus any others you might find helpful
  • これの利点は、同じネットワーク上のユーザーを区別するのに十分なデータがある可能性があることです。

  • 明らかな欠点は、同じネットワーク上のユーザーを区別するのに十分なデータがない可能性があることです。

于 2012-08-15T15:22:32.770 に答える
1

もう1つの方法は、データベースに次のデータをキャプチャするテーブルを作成することです。

  • IPアドレス
  • オペレーティングシステム/ブラウザなど(そのユーザーに固有のその他の情報)

次に、それを絞り込んで、「この特定のブラウザでこの特定のOSを使用しているこの特定のIPアドレスのユーザーが、この特定の時間にこのイメージをダウンロードした」と言うことができます。

それはあなたが達成したいことですか?

于 2012-08-15T15:32:57.900 に答える
1

これを行う絶対的な方法はないと思います。ユーザーは IP アドレスの変更、Cookie の削除または変更などを行うことができます。

ただし、計画しているシステム (投票、カウンター) に応じて、ユニーク ユーザーを決定する方法を開発できます。たとえば、ポーリング システムを開発するには、ip、http_user_agent をデータベースに挿入できます。また、品質を向上させるために、いくつかの Cookie を設定できます。

于 2012-08-15T15:24:27.637 に答える