????? 用Discuz程序办了一个MATLAB爱好者论坛(),随着论坛人气的上升,有一个问题越来越严重,那就是垃圾广告帖越来越多,现在每天都有好几个自动发帖机在论坛发布一些垃圾广告/SPAM,发布的内容是乱七八糟,不堪入目,严重影响了一个学术论坛的环境!有时候为了删这些垃圾帖子就需要很长时间。
????? 日益增多的互联网垃圾是一种非常无德的行为。而众多站长每日为了垃圾信息头疼不已。解释一下SPAM这个词,SPAM,最初是一个罐装肉的牌子。对于这个牌子名字的来源有很多解释,官方版本说,它是“Specially Processed Assorted Meat”特殊加工过的混和肉。这种SPAM肉有段时间非常普及,到了无处不在,令人讨厌的程度,后来(1970年)Monty Python剧团有个很流行的Sketch comedy(一种短小的系列喜剧)叫Spam,剧中两位顾客试图点一份没有SPAM的早餐,但不能得逞。于是,许多年后,Spam被用来称呼互联网上到处散布垃圾广告消息的现象。
????? 有人说在注册时采用Email验证,即可大大减少垃圾广告。这个方法是不错,但是有一些网站空间,不提供邮箱服务,或者说,空间商的邮件服务不是很好,注册时发送的EMAIL不及时发送到对方邮件服务器,或者被对方的邮件服务器当做垃圾邮件处理,甚至拒收注册时的邮件,那么新注册的用户就不能完成及时完成验证,这样的话,论坛有效注册用户便会大大减少,所以,我一般不愿意采取邮箱验证来完成注册。这样,论坛防止垃圾广告/SPAM的任务变得更艰巨了!
????? 论坛防止垃圾广告的方法也有很多种,但是效果都不尽如意,下面介绍一款插件,对含有插连接的广告贴很有效果,这款插件能够识别帖子中是否有外链,如果新注册会员发带有外链的帖子,则报错,提示发帖数没满一定数量不能发带URL的帖子。下面是效果图片:
下面提供这款插件下载,和插件使用方法:
下载附件,解压放到include目录下。如果你的这两个文件修改过了,请按下面的修改:
打开include目录下的newthread.inc.php
找到
$discuz_action=11;
下面加
$wolfpostsum = $db->result($db->query(”SELECT COUNT(*) FROM {$tablepre}posts where authorid=’$discuz_uid’”),0);
再找到
checklowerlimit($postcredits);
上面加
??
if($wolfpostsum < 20){
$adcheck=preg_replace(”/\[url(.*)\[\/url\]/is”,”",$message);
if($adcheck!=$message){
showmessage(’你的发贴数小于20,禁止提交包含URL连接的信息!’);
}
}
再打开newreply.inc.php
$discuz_action=12;
下面加
$wolfpostsum = $db->result($db->query(”SELECT COUNT(*) FROM {$tablepre}posts where authorid=’$discuz_uid’”),0);
再找到
checklowerlimit($replycredits);
上面加
if($wolfpostsum < 20){
$adcheck=preg_replace(”/\[url(.*)\[\/url\]/is”,”",$message);
if($adcheck!=$message){
showmessage(’你的发贴数小于20,禁止提交包含URL连接的信息!’);
}
}
大家可以将20改为你想要的数字。
编后语:
????? 这几天测试了一下,对防止带有外链的垃圾广告是挺有效果,自从采取这个办法以来,论坛没有那种带外链的垃圾帖了,但是还有一个问题,就是不带外链的垃圾广告帖,还是不能防止,因为有些广告贴中就不含有外链,他们通过QQ号,手机号,电话等宣传方式来宣传自己的产品或者服务,针对这样的垃圾广告,该怎么防止呢?各位有没有好的方法啊??