DEDECMS 模板中心

您现在的位置:主页 > 织梦大学 > 标签调用 >

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

来源: 编辑: 发布时间:2020-06-08热度:
最近发现织梦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]);
}
DedeCMS问题解决

请点击在线联系我们【点击咨询解决问题】   如果您有任何织梦问题,我们将免费为您写解决教程!

用心认真写教程不易,请小打赏我们一下,多少是心意,解决问题是重点

【打赏说明】 如果您认为在本站中看的内容质量不错、或阅读后有所收获、或解决您遇到的实际问题,那不妨小金额的赞助一下尚禹科技,让尚禹科技有动力继续写出更多高质量的教程和心得。以帮助更多的人。[查看打赏记录]

    尚禹科技:承接仿站业务,价格200元起!