織夢(mèng)DedeCMS文章防刷新增加點(diǎn)擊數(shù)的設(shè)置方法教程

2020-06-16 02:14:53 來源:互聯(lián)網(wǎng)作者:佚名 人氣: 次閱讀 178 條評(píng)論

文章主要介紹了織夢(mèng)DedeCMS文章防刷新增加點(diǎn)擊數(shù)的設(shè)置方法,下面是通過網(wǎng)絡(luò)收集整理的方法教程,給大家做個(gè)參考。...

  最近發(fā)現(xiàn)織夢(mèng)DEDECMS的文章點(diǎn)擊計(jì)數(shù)器有個(gè)弊端,就是只要你刷新一下網(wǎng)頁(yè)就做增加一次,也就是說只要有一個(gè)PV就算是一次點(diǎn)擊,有時(shí)我們?yōu)榱司_統(tǒng)計(jì)熱門文章,則需要防刷新機(jī)制,所以自己試著修改下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]))  //  如果第一次訪問,設(shè)定時(shí)間戳,并允許增加
{
    $_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) // 如果在一小時(shí)內(nèi)刷新頁(yè)面,則不增加。按此可以設(shè)置永遠(yuǎn)不增加
{
    exit();
} else {                        // 如果超過一小時(shí),則重新計(jì)時(shí),并允許增加
    $allow_insert = true;
    unset($_SESSION['ctime'.$aid]);
}

 以上是整理的織夢(mèng)DedeCMS文章防刷新增加點(diǎn)擊數(shù)的設(shè)置方法全部代碼內(nèi)容,希望文章能夠幫你解決所遇到的程序開發(fā)問題。