zoukankan      html  css  js  c++  java
  • destoon搜索关键词记录过滤拼音以及全英文搜索

       最近网站搜索关键词记录总有英文的恶意关键词搜索提交,导致dt后台的搜索关键词记录一大堆垃圾无效的搜索关键词,所以就重新在官方基础上修改过滤英文及拼音关键词搜索,说干就干!

        找到/include/module.func.php

       在14行左右,找到:function keyword($kw, $items, $moduleid) 

        替换这段函数改为以下即可:

       

    function keyword($kw, $items, $moduleid) {
    	global $DT;
    	//判断搜索字符串长度
    	if(!$DT['search_kw'] || $items < 2 || strlen($kw) < 3 || strlen($kw) > 120 || strpos($kw, ' ') !== false||strpos($kw, '_') !== false) return;
    	$kw = addslashes($kw);
    	//判断是否有关键词
    		$r = DB::get_one("SELECt * FROM ".DT_PRE."keyword WHERe moduleid=$moduleid AND word='$kw' ORDER BY itemid ASC");       
    	if($r) {
    		$letter = trim(gb2py($kw));
    		$items = $items > $r['items'] ? $items : $r['items'];
    		$month_search = date('Y-m', $r['updatetime']) == date('Y-m', DT_TIME) ? 'month_search+1' : '1';
    		$week_search = date('W', $r['updatetime']) == date('W', DT_TIME) ? 'week_search+1' : '1';
    		$today_search = date('Y-m-d', $r['updatetime']) == date('Y-m-d', DT_TIME) ? 'today_search+1' : '1';
            if($letter==$kw){
           DB::query("DELETE FROM ".DT_PRE."keyword WHERe moduleid=$moduleid AND word='$kw' ");
    		}
    		DB::query("UPDATe ".DT_PRE."keyword SET items='$items',updatetime='".DT_TIME."',total_search=total_search+1,month_search=$month_search,week_search=$week_search,today_search=$today_search WHERe itemid=$r[itemid]");
    		DB::query("DELETE FROM ".DT_PRE."keyword WHERe moduleid=$moduleid AND word='$kw' AND itemid>$r[itemid]");
    	} else {
    		$letter = trim(gb2py($kw));
    		$status = $DT['search_check_kw'] ? 2 : 3;
    		if(strlen($letter) < 2) $status = 2;
    		//判断拼音和中文是否一致,如果一致就不入库
            if($letter==$kw){
           DB::query("DELETe FROM ".DT_PRE."keyword WHERe moduleid=$moduleid AND word='$kw' ");
    		}else{
    		DB::query("INSERT INTO ".DT_PRE."keyword (moduleid,word,keyword,letter,items,updatetime,total_search,month_search,week_search,today_search,status) VALUES ('$moduleid','$kw','$kw','$letter','$items','".DT_TIME."','1','1','1','1','$status')");
    		}
    	}
    }
    

      最后后台更新下数据,清除下缓存,即可,就解决了搜索英文和拼音的烦恼

    文章转自:http://www.kaotop.com/it/354435.html

    千行代码,Bug何处藏。 纵使上线又怎样,朝令改,夕断肠。
  • 相关阅读:
    解决:Ubuntu12.04下使用ping命令返回ping:icmp open socket: Operation not permitted的解决
    【Magenta 项目初探】手把手教你用Tensorflow神经网络创造音乐
    python表达式操作符【学习python必知必会】
    关于提高python程序执行效率的思路和想法
    动手前的构思在编写程序中的重要性
    python 之禅
    HTTP 访问学习笔记 留坑
    软件工程与方法学——面向对象程序设计例子
    python 英文字串首字母改为大写
    Objective-C:方法缓存
  • 原文地址:https://www.cnblogs.com/68xi/p/15484447.html
Copyright © 2011-2022 走看看