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

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!
织梦dedeCMS文章防刷新机制的代码
最近发现织梦DEDECMS的文章点击计数器有个弊端,就是只要你刷新一下网页就做增加一次,

也就是说只要有一个PV就算是一次点击,有时我们为了精确统计热门文章,则需要防刷新机制,所以自己试着修改下PHP代码,试了下,好像可以。 
 
将plus/count.php 改为下面代码就OK了. 
  1. <? 
  2. $__ONLYDB = true
  3. require_once(dirname(__FILE__)."/../include/config_base.php"); 
  4.   
  5. session_start();  //新加入 
  6.   
  7. if(empty($aid)) $aid="0"
  8. $aid = ereg_replace("[^0-9]","",$aid); 
  9. if(empty($mid)) $mid="0"
  10. $mid = ereg_replace("[^0-9]","",$mid); 
  11.   
  12. if (!isset($_SESSION['c_time'.$aid]))  //  如果第一次访问,设定时间戳,并允许增加 
  13. {  
  14.     $_SESSION['c_time'.$aid] = time(); 
  15.   
  16.     $dsql = new DedeSql(false); 
  17.     $dsql->ExecuteNoneQuery("Update dede_archives set clickclick=click+1 where ID='$aid'"); 
  18.     if(!empty($mid)){ 
  19.     $dsql->ExecuteNoneQuery("Update dede_member set pageshowpageshow=pageshow+1 where ID='$mid'"); 
  20.     } 
  21.     if(!empty($view)){ 
  22.         $row = $dsql->GetOne("Select click From dede_archives  where ID='$aid'"); 
  23.         echo "document.write('".$row[0]."');\r\n"; 
  24.     } 
  25.     $dsql->Close(); 
  26.     exit(); 
  27.   
  28. elseif (time() - $_SESSION['ctime'.$aid] < 3600) // 如果在一小时内刷新页面,则不增加。按此可以设置永远不增加 
  29.     exit(); 
  30. } else {                        // 如果超过一小时,则重新计时,并允许增加 
  31.     $allow_insert = true
  32.     unset($_SESSION['ctime'.$aid]); 
 以上内容仅供大家参考学习,希望对你有帮助。
 

查看更多 DedeCms教程  织梦模板  织梦DedeCms视频教程  织梦dedecms专题

来源:模板无忧//所属分类:DedeCms教程/更新时间:2020-05-30
相关DedeCms教程