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

softyun3年前cms教程194


织梦dedeCMS文章防刷新机制的代码
最近发现织梦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 clickclick=click+1 where ID='$aid'"); 
    if(!empty($mid)){ 
    $dsql->ExecuteNoneQuery("Update dede_member set pageshowpageshow=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]); 

 以上内容仅供大家参考学习,希望对你有帮助。
 

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

PHPCMS mysql优化教程

在整体的系统运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,连 PHP 的官方都在声称,说 PHP 脚本 80% 的时间都...

织梦dedecms增加英文栏目名称

在做外贸SEO优化的时候,有时候因为网站功能需求,经常会用到中文站和英文站。这里有一个栏目添加英文名称的方法,下面和大家分享一下。1.数据库新增加字段 typenameen       这里说的字段不...

【Autochannel 标记使用实例】-DedeCMS模板制作使用实例教程(5)

{dede:autochannel partsort='1'/}{dede:channel typeid='1'} [field:typename/] {/dede:channel}{dede:aut...

织梦CMS批量替换所有文章来源和作者的方法

织梦CMS批量替换所有文章来源和作者的方法有时候我们想对织梦dedecms中已经发表文章的来源和作者进行批量替换,可以通过下面这个方式进行修改,或者也可以直接写在模板里面,不通过调用的形式。     ...

PhpCms入门指引:安装前准备

一、安装前的准备 Phpcms 具备跨平台特性,可以运行于 Linux/FreeBSD/Unix 及微软 Windows 2000/2003 等各种操作系统环境下。 我们已在软件中 针对上述操作系统做...

DedeCms 万能安全防护代码

为了让大家的CMS更安全,有需要的手工在config_base.php里加上打开config_base.php 找到//禁止用户提交某些特殊变量$ckvs = Array('_GET','_POST'...