最近發現織夢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文章防重新整理增加點選數的設定方法全部程式碼內容,希望文章能夠幫你解決所遇到的程式開發問題。