分享好友 教程首页 教程搜索 频道列表

DESTOON搜索关键词记录过滤拼音以及全英文搜索

2021-12-07 14:245710
+关注2
核心提示:搜索关键词记录总有英文的恶意关键词搜索提交,导致destoon后台的搜索关键词记录一...

网站搜索关键词记录总有英文的恶意关键词搜索提交,导致destoon后台的搜索关键词记录一大堆垃圾无效的搜索关键词,所以就重新在官方默认的基础上修改过滤英文及拼音关键词搜索,话不多说,看教程,不限destoon版本

找到/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')");
		}
	}
}


代码完成,在后台更新下数据,清除下缓存,即可

本文标签: #搜索 #过滤 #记录
整理员:网络转载
免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
生成海报
您可能在找更多

百度搜索资源平台之PC网站url的移动适配

    案例的移动端是绑定的二级域名的,案例代码如下,已可以参考,需要根据你自己网站的url去修改

小黑 随手记 22022-09-08

jQuery+AJAX+PHP+MySQL数据库开发搜索功能,无跳转无刷新搜索

    演示:1、当表单无输入任何关键词的时候,返回请输入关键词...2、当表单输入的关键词查询无果的时候,返回无结果3、当表单输入的关键词查询有结果,则返回结果。表单页面index.html!DOCTYPEhtmlhtmlheadmetacharset=

网络 Ajax相关教程2021-07-21

DESTOON伪静态地址空值优化

    目前的处理方式:index.php?catid=0areaid=0kw=墙体广告的伪静态处理结果为index-htm-kw-墙体广告

小黑 开发技术2020-10-29

如何设置 Mysql 的 ft_min_word_len=1

    从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间商大部分可能并没有注意到这个问题,没有修改 Mysql 的默认设置。为什么要用全文索引呢?一般的数据库搜索都是用的SQL的 like 语句,like 语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数

网络 linux2020-04-30

教你如何使用DESTOON全文搜索功能

小黑 开发技术2020-04-30

下一篇
我来说两句
抢沙发