统计的代码是这样的。不知道是不是算法有问题。不过如果本地禁用了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了。浪费时间。
