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

[复制链接]
查看1697 | 回复0 | 2020-5-31 18:20 | 显示全部楼层 |阅读模式
最近发现织梦DEDECMS的文章点击计数器有个弊端,就是只要你刷新一下网页就做增加一次,也就是说只要有一个PV就算是一次点击,有时我们为了精确统计热门文章,则需要防刷新机,所以自己试着修改下PHP代码,试了下,好像可以。

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

  1. <?
  2. $__ONLYDB = true;
  3. require_once(dirname(__FILE__)."/../include/config_base.php");
  4. session_start();  //新加入
  5. if(empty($aid)) $aid="0";
  6. $aid = ereg_replace("[^0-9]","",$aid);
  7. if(empty($mid)) $mid="0";
  8. $mid = ereg_replace("[^0-9]","",$mid);
  9. if (!isset($_SESSION['c_time'.$aid]))  //  如果第一次访问,设定时间戳,并允许增加
  10. {
  11.     $_SESSION['c_time'.$aid] = time();
  12.     $dsql = new DedeSql(false);
  13.     $dsql->ExecuteNoneQuery("Update dede_archives set click=click+1 where ID='$aid'");
  14.     if(!empty($mid)){
  15.     $dsql->ExecuteNoneQuery("Update dede_member set pageshow=pageshow+1 where ID='$mid'");
  16.     }
  17.     if(!empty($view)){
  18.         $row = $dsql->GetOne("Select click From dede_archives  where ID='$aid'");
  19.         echo "document.write('".$row[0]."');\r\n";
  20.     }
  21.     $dsql->Close();
  22.     exit();
  23. }
  24. elseif (time() - $_SESSION['ctime'.$aid] < 3600) // 如果在一小时内刷新页面,则不增加。按此可以设置永远不增加
  25. {
  26.     exit();
  27. } else {                        // 如果超过一小时,则重新计时,并允许增加
  28.     $allow_insert = true;
  29.     unset($_SESSION['ctime'.$aid]);
  30. }
复制代码

最后后台更新缓存一键生成,大功告成。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-4-16