当前位置 : 主页 > 建站教程 > dedecms >

织梦dedeCMS文章防刷新机制的代码

来源:互联网 收集:自由互联 发布时间:2021-06-20
最近发现织梦DEDECMS的文章点击计数器有个弊端,就是只要你刷新一下网页就做增加一次, 也就是说只要有一个PV就算是一次点击,有时我们为了精确统计热门文章,则需要防刷新机制,
最近发现织梦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]); }
网友评论
相关栏目