3

自分のサイトで自分のユーザー プロファイルを閲覧した回数を計算したいと考えています。

データベースにカウントを保持し、ユーザーがページを更新したときにカウントの増加を停止したいと考えています。IPによる制限。

IP アドレスのキャッシュを作成し、毎日空にする必要があることを理解しています。

これを行う方法についての指示はありますか。誰か私に話してもらえますか?

4

3 に答える 3

13
  1. $this->input->ip_address()コントローラーでユーザーのIPアドレスを取得するために使用できます
  2. データベースにIP、ユーザーが最初にサイトにアクセスした時間、およびカウンターを保存します
  3. 時間が 24 時間未満の場合は、カウンターをインクリメントしないでください。
  4. 時間が 24 時間を超えている場合は、IP の時間を更新し、カウンターを更新します。
  5. カウンターを取得:$this->db->select_sum("counter")->get("views_table");結果を処理します。
于 2012-05-08T12:19:35.227 に答える
0
  • ユーザーを保存するテーブルに、ビュー数を表す列を追加します。
  • プロファイルにアクセスするたびに、この値を増やす必要があります。
  • giorgio が述べたように別のテーブルを作成し、IP アドレスを保存しますが、DATETIME 列を追加します。
  • プロファイルにアクセスするたびに、このプロファイルのテーブルに IP アドレスが存在するかどうかを確認する必要があります。存在する場合は、ビュー カウントを増やしません。そうでない場合は、IP アドレス、プロファイル ID、日時を含む新しい行を挿入します。
  • 追跡期間を決定する cron を使用して、毎日 1 回クリーンアップ ジョブを設定します。1 日、2 日、1 週間古いすべてのエントリを削除します。これは、同じ IP が x 日後にアクセスすると、データベースにまだ存在しない限り、ビュー カウントが増加する可能性があることを意味します。
于 2012-05-09T12:47:23.777 に答える
0

データベース テーブルを作成します。

id | page_id | ip_address | views

ユーザーの IP アドレス ( ) を読み取り、IP アドレス$_SERVER['REMOTE_ADDR']が現在のページのテーブルに存在するかどうかを確認し、存在する場合はviews列をインクリメントし、そうでない場合は新しいレコード設定viewsを 1 つ作成します。views > $xあまり興味を持たないように頼むきちんとしたメッセージを彼らに提示する場合.

大変じゃなかったですか?;)

そして、「ユーザーがページを更新したときにカウントの増加を停止する」という部分について。ページビューが更新されていない場合 (誰かが F5 を押した場合) にのみカウントを増やしたいということですか? これはほとんど不可能です。試してはいけません...

データベースを空にするには、cronjob を使用するか、アクセスできない場合は、poormans cron (Google で検索) を使用します。

于 2012-05-08T12:15:12.170 に答える