最近發(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]); } |
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: 織夢(mèng)dedeCMS文章防刷新增加點(diǎn)擊數(shù)教程