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

创建数据库表:

id | page_id | ip_address | views

读出用户的 ip 地址 ( $_SERVER['REMOTE_ADDR']),检查当前页面的表中是否存在 ip-address,如果存在则增加views列,否则创建新的记录设置views为 1。如果views > $x给他们一个简洁的信息,请他们不要那么好奇。

没那么难,是吗?;)

对于“当用户刷新页面时停止计数增加”部分;你的意思是如果页面视图不是刷新(有人按 F5) ,你只想增加计数?这几乎是不可能的,不要尝试...

对于清空数据库,请使用 cronjob,或者如果您无权访问它,请使用poormans cron(谷歌)

于 2012-05-08T12:15:12.170 回答
0
  • 在您存储用户的表中,添加表示查看次数的列。
  • 每次访问您的个人资料时,您都需要增加此值。
  • 按照 giorgio 的说明制作一个单独的表并存储 IP 地址,但添加一个 DATETIME 列。
  • 每次访问您的个人资料时,您都需要检查该个人资料的该表中是否存在 IP 地址:如果存在,则不要增加查看次数;如果不是,则插入带有 IP 地址、您的个人资料 ID 和日期时间的新行。
  • 每天使用 cron 设置一次清理作业,以确定跟踪的持续时间:删除所有早于 1 天、2 天、一周的条目 - 任何你想要的 - 这是跟踪 IP 的时长。这意味着当 x 天后相同的 IP 访问时,视图计数可能会增加,除非它仍然存在于数据库中。
于 2012-05-09T12:47:23.777 回答