当前位置:首页 > 网络编程 > WEB编程 > PHP > 如何防止Dedecms阅读数被恶意作弊

如何防止Dedecms阅读数被恶意作弊

点击次数:37 次 发布日期:2008-12-01 16:54:33 作者:源代码网
源代码网推荐  

dede的文章点击计数不防刷的,自己改了下,自己试着好像没问题。

将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 #@__archives set click=click+1 where ID="$aid"");
  if(!empty($mid)){
  $dsql->ExecuteNoneQuery("Update #@__member set pageshow=pageshow+1 where ID="$mid"");
  }
  if(!empty($view)){
    $row = $dsql->GetOne("Select click From #@__archives where ID="$aid"");
    echo "document.write("".$row[0].""); ";
  }
  $dsql->Close();
  exit();

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

?>


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华