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

来源:互联网 发布:php在线视频网站源码 编辑:程序博客网 时间:2024/06/06 16:56
  现在用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);
}
0 0