登陆

关于统计不准

统计的代码是这样的。不知道是不是算法有问题。不过如果本地禁用了COOKIE,或者访问了又清除COOKIE,这段代码的累计操作会不断执行,就不可能防刷新了。

// 如果客户端不等于COOKIE    记录的IP
if ($_COOKIE['UserIP'] !== getip()) {
    
//把客户端的IP保存到客户端的COOKIE一天
    
setcookie ('UserIP'getip(), time()+(24*3600));
    
$curtime sadate('Y-m-d');
    
$rs $DB->fetch_one_array("SELECT curdate FROM ".$db_prefix."statistics WHERE curdate='".$curtime."'");
    
//查看数据库统计的时间是否为当天
    
if(!$rs) {
    
//不为当天,这是当天第一个人访问的操作。
    //更新统计时间为当天
    
$DB->query("UPDATE ".$db_prefix."statistics SET curdate ='".$curtime."'");
    
//更新当天的统计为1
    
$DB->query("UPDATE ".$db_prefix."statistics SET today_view_count = '1'");
    } else {
    
//如果是当天,则表示有人访问过了,就给当天的统计+1
    
$DB->unbuffered_query("UPDATE ".$db_prefix."statistics SET today_view_count = today_view_count+1");
    }
    
//总的访问量+1
    
$DB->unbuffered_query("UPDATE ".$db_prefix."statistics SET all_view_count = all_view_count+1");
    
statistics_recache();
}
//完了之后,IP已经记录到客户端COOKIE里,当再次访问时,客户端IP和COOKIE一样。就不会执行上面的统计累加操作。
//即防止本地多次刷新。

如果要达到很精确,肯定要记录在服务器了。要不就是写文件,要不就是记录在数据库里,麻烦。还是要找找新的算法。让统计更精确一些。发上来让大家交流一下。

这天看到fckeditor有了新版本。说修补了一些BUG。我看了看。其实我去掉了一些功能后。BUG也就不存在了。而且在原来精简的基础上,又精简了一些小功能。速度也不错,况且似乎新的FCKeditor和我们现在用的代码有些变动。所以也就不打算用新的FCKeditor了。浪费时间。

Tags: fckeditor, 统计

« 上一篇 | 下一篇 »

相关文章

访客评论

1.cookie本地ip存储.如果能够从本地捕获cookie就跳过其它的判断直接处理.
2.建立ip库.唯一的ip字段,ip最后访问时间,ip访问次数.

再cookie没有打开的模式下转换到数据库遍历..

效率和准确应该都可以解决了吧?

不过很奇怪的是,我的姓名web地址都可以保留了,为什么独独统一刷新不能保存?

我估计是getip函数问题,兼容性太强也不是什么好事,你还是建个ip库,对一天下来的ip监控一下,看看是什么结果.
搜索引擎的蜘蛛,是不是也会被统计?像百度那样抓的佷疯狂的,,肯定是会引起统计不准。应该把搜索引擎的蜘蛛的IP地址做个列表,然后访问者的IP比较这个,如果不是搜索引擎来的,然后再++
在底下加个统计代码不是更好解决辣?
第三方的统计一样不准……

说到底,这玩意只是作为一个参考,做不到绝对精确。

发表评论

评论内容 (必填):

My E-mail