本帖最后由 zyml.net 于 2010-12-24 22:58 编辑
说明:为了和原系统独立,请下载单独文件到论坛中,以便以后升级;附件中包含了已经配置好的数据,可直接下载覆盖测试,如果系统文件已经修改过,请按照下面的说明执行操作,类中提供了一些基础类,可用于其它二次开发
演示地址:http://bbs.headidc.com
功能:目前只做了DISCUZ论坛,可扩展为所有的PHP系统应用,可自定义替换,删除,自动删除包含有违法关键字的帖子(可自己配置)
方式:从发表数据POST检测预防;二次处理,或者以前本身就包含很多广告帖子,一旦用户打开这个帖子,自动执行操作,如果有多楼只删除该楼层的违法信息
使用方法:将文件夹中的文件,按照原来的目录结构放入所要操作系统的根目录下
文件说明:class/handinfo.class.php:文件原子操作类和已经封装的discuz_handinfo方法
config/badword.config.php:违法信息关键字屏蔽列表,里面有示范,请按照固定格式配置,逗号连接的关键字表示同时 时出现这两个字才判断为违法信息,即组合关键字
参数说明:
$t = new handleInfo();//实例化类
$post=$t->discuz_handle($post,$ad_check = true,$badword_check = true,$allowurl = array("zyml.net"),$action='del',$replace_into='');
$post:帖子信息数组
$ad_check:是否进行广告链接检测
$badword_check :是否进行违法信息检测
$allowurl :允许在帖子中出现的url链接数组,比如$allowurl=arrary('zyml.net','discuz.net')就表示允许discuz.net和zyml.net在帖子中出现
$action:可选del和replace,del表示出现违法信息或者广告链接执行删除,replace表示执行替换
$replace_into:表示替换成什么信息,支持html代码
使用方法:
在include/common.inc.php任何一个地方加入:
require_once DISCUZ_ROOT.'./class/handleinfo.class.php';
include/post.func.php的520行(checkpost函数中):
查找:
- global $subject, $message, $disablepostctrl, $minpostsize, $maxpostsize;
复制代码
加入
$t = new handlebase();
if($t->is_allow($subject)==false || $t->is_allow($message)==false)
{
return 'subject or message is badword or advertisement;power by zyml.net';
}
以上完成了发表帖子时候的检测功能,而有的时候注册机可以绕过程序,那么执行二次保险操作(对已经存在很多广告信息的论坛很好使)
viewthread.php中查找:
在它的上面加入 :
- $t = new handleInfo();
- $post=$t->discuz_handle($post,true,true,array("zyml.net"),'replace','<font color="blue">url链接替换测试</font>');
复制代码
discuz x!版本下载地址:http://bbs.headidc.com/thread-1-1-1.html
|