新聞中心
如何讓DeDecms文章點擊計數(shù)器防刷新機制
作者 / 無憂主機 時間 2019-10-14 09:31:19
DeDecms文章點擊計數(shù)器的算法,一直困擾著各位站長。系統(tǒng)默認(rèn)的算法是只要用戶訪問文章頁面刷新一次,系統(tǒng)就會自動算上一個點擊。當(dāng)我們需要精準(zhǔn)的統(tǒng)計好熱門的文章時候,就無法精確的統(tǒng)計。遇到這類問題的時候站長會采用第三方的統(tǒng)計工具部署在PHP空間中,本節(jié)無憂主機小編將分享一下用默認(rèn)的統(tǒng)計機制,只是更換了一種算法來實現(xiàn)。 1、首先是點擊進(jìn)入到我們的控制面板,然后找到文件管理選項,如圖所示: 2、點擊進(jìn)入之后找到我們站點的根目錄,如圖所示: 3、進(jìn)入到這個目錄之后找到我們的程序的路徑: plus/count.php,點擊編輯,如圖所示: 將源文件內(nèi)的代碼全部替換成下列代碼:
<? $__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è)定時間戳,并允許增加 { $_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) // 如果在一小時內(nèi)刷新頁面,則不增加。按此可以設(shè)置永遠(yuǎn)不增加 { exit(); } else { ???????????????????????// 如果超過一小時,則重新計時,并允許增加 $allow_insert = true; unset($_SESSION['ctime'.$aid]); }//總結(jié):由于代碼比較長,用戶在更換的時候最好備份好原文件,以上代碼已經(jīng)過測試。 以上是無憂主機獨立IP空間為您帶來的介紹。
本文地址:http://www.gle-technology.com/dedecms/28507.html