我想计算人们在我的网站上查看我的用户个人资料的次数。
我想在我的数据库中保留一个计数,并在用户刷新页面时停止计数递增。受 IP 限制。
我知道需要每天创建和清空IP地址缓存。
有没有关于如何做到这一点的说明。谁能跟我说一遍?
- 您可以使用
$this->input->ip_address()
在控制器中获取用户的 IP 地址 - 在数据库中保存 ip、用户首次访问站点的时间和计数器
- 如果时间小于 24 小时,请不要递增计数器。
- 如果时间大于 24 小时,请更新 ip 的时间并更新计数器。
- 获取计数器:
$this->db->select_sum("counter")->get("views_table");
并处理结果。
创建数据库表:
id | page_id | ip_address | views
读出用户的IP地址($_SERVER['REMOTE_ADDR']
),检查当前页面的表中是否存在IP地址,如果是,则增加views
列,否则创建新的记录设置views
为1。如果views > $x
向他们展示一个整洁的信息,要求他们不要那么好奇。
这不难吗?;)
对于"当用户刷新页面时停止计数递增"部分; 您的意思是仅在页面视图不是刷新(有人按 F5)时才增加计数吗? 这几乎是不可能的,不要尝试...
对于清空数据库,请使用 cronjob,或者如果您无法访问它,请使用 poormans cron (谷歌)
- 在存储用户的表中,添加一列来表示观看次数。
- 每次访问您的个人资料时,您都需要增加此值。
- 按照 giorgio 的规定创建一个单独的表并存储 IP 地址,但添加一个 DATETIME 列。
- 每次访问您的个人资料时,您都需要检查此个人资料的表中是否存在 IP 地址:如果是,则不要增加查看次数;如果没有,则插入一个新行,其中包含 IP 地址、您的个人资料 ID 和日期时间。
- 每天使用 cron 设置一次清理作业,以确定跟踪的持续时间:删除所有较旧的条目 1 天、2 天、一周 - 您想要的任何内容 - 这是 IP 将被跟踪的时间。这意味着,当相同的 IP 在 x 天后访问时,视图计数可能会增加,除非它仍然存在于数据库中。