最近发现织梦DEDECMS的文章点击计数器有个弊端,就是只要你刷新一下网页就做增加一次,

也就是说只要有一个PV就算是一次点击,有时我们为了精确统计热门文章,则需要防刷新机制,所以自己试着修改下PHP代码,试了下,好像可以。

将plus/count.php改为下面代码就OK了.

<?
$__ONLYDB = true;
require_once(dirname(__FILE__)."/../include/config_base.php");
session_start();  //新加入
if(empty($aid)) $aid="0";
$aid = ereg_replace("[^0-9]","",$aid);
if(empty($mid)) $mid="0";
$mid = ereg_replace("[^0-9]","",$mid);

if (!isset($_SESSION['c_time'.$aid]))  //  如果第一次访问,设定时间戳,并允许增加
{
$_SESSION['c_time'.$aid] = time();

$dsql = new DedeSql(false);
$dsql->ExecuteNoneQuery("Update dede_archives set click=click+1 where ID='$aid'");
if(!empty($mid)){
$dsql->ExecuteNoneQuery("Update dede_member set pageshow=pageshow+1 where ID='$mid'");
}
if(!empty($view)){
$row = $dsql->GetOne("Select click From dede_archives  where ID='$aid'");
echo "document.write('".$row[0]."');\r\n";
}
$dsql->Close();
exit();

}
elseif (time()-$_SESSION['ctime'.$aid] < 3600) // 如果在一小时内刷新页面,则不增加。按此可以设置永远不增加
{
exit();
} else {                        // 如果超过一小时,则重新计时,并允许增加
$allow_insert = true;
unset($_SESSION['ctime'.$aid]);
}

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。