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

织梦教程 强烈建议 2024-02-06 14:09 82 0

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

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

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

  

  $__ONLYDB=true;

  require_once(dirname(__FILE__)."/");

  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]);

  }



时间:(2024-02-06 14:09:09)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!