技术笔记

一名已转行的程序员
当前位置:网站首页 / 代码笔记 / 正文

DESTOON发布信息非法关键词,提示代码

2017-02-21 / 代码笔记 / 534 次围观 / 0 次吐槽
现在用destoon的都知道,由于很多会员会发布一些违法的关键词,为了屏蔽这些,会在dt后台添加词语过滤拦截的功能。但是也有些destoon用户发现了一个问题,当一些会员发信息的内容中,包含了非法关键词,dt只会拦截,而不会提醒会员,是拦截了那个非法词,这样很不利于用户体验。。。。有木有。如果是程序能提示用户,是拦截了什么非法关键词的话,用户就能很快的找到对应的关键词,进行修改发布,能很好的留住企事业会员。

下面,我分享一下本站是怎么做的。

第一步:

在程序对应位子中找到include.inc.php

\lang\zh-cn\include.inc.php

include.inc.php,文件中的

$L['defend_proxy'] = '请不要使用代理访问本站';

后面加上以下提示代码

$L['msg_word_ban'] = '提交的内容含有被网站禁止的字符:{V0}';

第二步:

在程序对应位子中找到global.func.php

\include\global.func.php

在文件中找到在437行左右。

function banword($WORD, $string, $extend = true) {
   $string = stripslashes($string);
   foreach($WORD as $v) {
       $v[0] = preg_quote($v[0]);
       $v[0] = str_replace('/', '\/', $v[0]);
       $v[0] = str_replace("\*", ".*", $v[0]);
       if($v[2] && $extend) {
           if(preg_match("/".$v[0]."/i", $string)) dalert(lang('include->msg_word_ban'));
       } else {
           if($string == '') break;
           if(preg_match("/".$v[0]."/i", $string)) $string = preg_replace("/".$v[0]."/i", $v[1], $string);
       }
   }
   return addslashes($string);
}

替换成下面这个
function banword($WORD, $string, $extend = true) {
       $string = stripslashes($string);
       foreach($WORD as $v) {
               $v[0] = preg_quote($v[0]);
               $v[0] = str_replace('/', '\/', $v[0]);
               $v[0] = str_replace("\*", ".*", $v[0]);
               if($v[2] && $extend) {
                 if(preg_match("/".$v[0]."/i", $string)) dalert(lang('include->msg_word_ban',array($v[0])));
               } else {
                       if($string == '') break;
                       if(preg_match("/".$v[0]."/i", $string)) $string = preg_replace("/".$v[0]."/i", $v[1], $string);
               }
       }
       return addslashes($string);
}


推荐您阅读更多有关于“”的文章

本站所有文章如无特别注明均为原创。作者:程序员小邓 ,复制或转载请以超链接形式注明转自 技术笔记
原文地址《DESTOON发布信息非法关键词,提示代码
额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP

Copyright 技术笔记 Rights Reserved.