2012-05-11 10 views
1

私はcodeigniterを使用して記事ベースのウェブサイトを作成しようとしています。どの記事がデータベースからフェッチされて表示されるように要求された場合、次のコードを使用して、各記事のユニークなビューの数を「ヒット」と呼ばれる別のテーブルにマークします。uniqie記事ビューの数を記録する最も効果的な方法は何ですか

私はユーザーのIPアドレスを取得し、$ this-> uri-> segment(3)からarticle_slugの値を取得します。 上記のmysqlクエリを実行します。

ここでIPアドレスを使用してユニークなビュー数を取得していますが、突然同じIPアドレスを複数のユーザーが使用する可能性があります。その場合、上記のクエリは効果的ではないようです。

私はそれを行う最も効果的な方法が何であるか不思議でした。私の友人の一人が、IPアドレスの代わりにクッキーを使ってそれについて話していました。あなたはそれが良いアイデアだと思っていますか、それとももっと良い方法がありますか?

どうすればいいですか?事前に

感謝:)

+0

クッキーは、いつでもクリアすることができ、同じマシンを数えるので、決定的なカウントを与えません。 – gorelative

+0

私はそれがあなたが望むレベルでは可能ではないと思います。私は動的IPを持っています。私がサイトを見ると、ヒット数は増えますが、私は同じ人です。または、共有IPが可能です。あなたのヒット数がそれよりも少ないことを意味します。 – itachi

+0

私はこれを行う簡単な方法はないと思います。 IPアドレスやCookieを信頼して個人を識別することはできません。ユーザーがサインアップしてからログインしてから各ページを読んでからそれらのヒットを追跡すると、より正確な結果が得られるかもしれませんが、その設定にはかなりの労力が必要です。人々に記事を読むためにサインインすることは、人々をあなたのサイトから切り離すことになります。とにかく誰かが1つのアカウントしか持っていないことを保証する方法はありません。つまり、不安を受け入れる準備ができていれば、クッキーアプローチをお勧めします。 – andrewsi

答えて

0

私はGoogle Analyticsを使用して、唯一の物品のビューを追跡するカスタムレポートを設定することをお勧めします。これは、あなたが求めている洞察力とはるかに多くを与え、ボット(Google、Bing、SPAMerなど)の数を減らすことになります。

あなたが挑戦的にユーザーを追跡したいのであれば、1つのフィールドでIPアドレスを、別のフィールドでセッションIDを追跡することをお勧めします。

+0

これはMySQLの多くの負荷を軽減し、Apacheの利点です。 –

+0

@ user1390126お返事ありがとうございました。しかし、Googleアナリティクスを使用すると、自分のウェブサイトの記事の横に表示される記事の数を表示できますか? –

+0

SESSIONを使用している場合、ユーザーがブラウザを閉じるとセッションが再設定されませんか? – andrewsi

0

Cookieを使用する理由は、ユーザーのグループがプロキシの背後にあると、あなたの記事を読んだすべてのユーザーのIPアドレスが同じであるということです。

このように両方のコンボを使用すると、より良い結果を得ることができます。 Cookieまたはセッションのいずれかを使用できます。しかし、クッキーを使用して約1年以上の有効期限を与え、Cookie(ログテーブルのプライマリキーのmd5になる可能性があります)にユニークなハッシュを指定してから、ユーザーをきちんと追跡できます。

あなたが私の言いたいことを理解できない場合は教えてください。

+0

ご返信ありがとうございます。私はあなたが何を意味しようとしたのかというアイデアをつかんでみましたが、失敗しました。あなたはコードのいくつかの例でもう少し説明してください。(それは私にとってはもっと簡単になります) –

+0

私も質問があります。なぜ約1年以上の有効期限を設定する必要がありますか?これも説明してください。ありがとう –

+0

確かに、クッキーに有効期限を設定すると、ユーザーがすべてのクッキーを手動で消去するかクッキーが指定期間内に期限切れになる限り、訪問者のブラウザにクッキーが存在することになります。しかし、2、3年以内にブラウザやラップトップ/コンピュータを変更する人が増えるにつれて、1年または2年は実用的になる可能性があります。 :-) – Dharmavir

関連する問題