分享好友 资讯首页 频道列表

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

2018-06-13 08:230
 现在用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'));

                  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
评论 0
10649