zoukankan      html  css  js  c++  java
  • 织梦dedeCMS文章防刷新机制的代码

    最近发现织梦DEDECMS的文章点击计数器有个弊端,就是只要你刷新一下网页就做增加一次,

    也就是说只要有一个PV就算是一次点击,有时我们为了精确统计热门文章,则需要防刷新机制,所以自己试着修改下PHP代码,试了下,好像可以。 

     
    将plus/count.php 改为下面代码就OK了. 
     
    <?
    $__ONLYDB = true;https://www.xuanhe.net
    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]."'); ";
        }
        $dsql->Close();
     
    }
    elseif (time() - $_SESSION['ctime'.$aid] < 3600) // 如果在一小时内刷新页面,则不增加。按此可以设置永远不增加
    {
        exit();
    } else {                        // 如果超过一小时,则重新计时,并允许增加
        $allow_insert = true;
        unset($_SESSION['ctime'.$aid]);
    }
  • 相关阅读:
    java下Mysql基本操作
    利用CNN进行多分类的文档分类
    对WEB url 发送POST请求
    Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析
    Linq转换操作之ToArray,ToList,ToDictionary源码分析
    Linq基础必备
    var 在linq中的使用
    Linq的使用场景简介和认识
    replaceState 实现返回从新定位
    ReSharper
  • 原文地址:https://www.cnblogs.com/zqw111/p/13030219.html
Copyright © 2011-2022 走看看