我的php网页中有一个简单的函数,可以使用以下查询来计算页面的视图。
UPDATE tbl_threads SET views = (views+1);
过去4个月我的网站运行正常。但是今天,几分钟前,我的一篇文章的观点突然开始增加为100分钟。我认为有些人(一些黑客)正在破坏我的网站。我怎么能控制它?我该如何解决这个问题。一段时间后,又有一个帖子视图以相同的速率开始增加。当我在Google Analytics中检查我的流量统计信息时,流量正常。请帮助我。
答案 0 :(得分:3)
在会话中设置一个标记为已被计为访问者的标记:
$_SESSION['didVisit'] = 1;
然后在更新数据库之前,请确保它未设置:
if( !isset( $_SESSION['didVisit'] )
// DO DATABASE UPDATE
您还可以设置常规Cookie,指示您将用户计为视图。然后当他们进来时,在更新数据库之前先检查该cookie是否存在。通过这种方式,他们每次都必须删除他们的cookie才能算作新的视图。
如果您认为机器人正在访问您的网站,因此无法正常使用Cookie,您可以获取多个$ _SERVER信息,并且(如上面的评论中所述)尝试创建唯一的哈希和存储它在数据库中识别访客。
这些天的大多数机器人(无论如何都是友好机器人)定义了用户代理,您可以检查并忽略这些点击:http://www.monperrus.net/martin/list+of+robot+user+agents和http://www.robotstxt.org/db.html
答案 1 :(得分:1)
仅尝试从唯一的IP地址计算页面浏览量,这样每次用户重新加载页面时页面视图都不会增加。