返回首页
当前位置: 主页>网站运作>

discuz防垃圾发帖注册--基于stopforumspam数据库

时间:2011-12-29 21:58来源:未知 作者:admin 点击:
  

 

注意本方法在注册时就会检索stopforumspam上数据信息,如果此人的在其它论坛上发过垃圾贴,则会阻止其注册。有效拦截。。

大家如果有经验的,搜索一下那些发垃圾贴人的IP地址,很有可能在stopforumspam的数据库中已经存在了,而且使用的人越多,添加的发垃圾贴人的信息就更全面。

方法很简单,在注册文件中加上一个检查代码:
修改: ./register.php

$discuz_action = 5;
下面加上
function stopforumspam($var,$type = 'username'){

$file = file_get_contents('http://www.stopforumspam.com/api?'.$type.'='.$var);

$explode = explode('appears',$file);

unset($file);

return $explode[1] == '>yes</' ? true : false;

}
复制代码

if($ipregctrl) {

                foreach(explode("\n", $ipregctrl) as $ctrlip) {

                        if(preg_match("/^(".preg_quote(($ctrlip = trim($ctrlip)), '/')."/", $onlineip)) {

                                $ctrlip = $ctrlip.'%';

                                $regctrl = 72;

                                break;

                        } else {

                                $ctrlip = $onlineip;

                        }

                }

        } else {

                $ctrlip = $onlineip;

        }
复制代码
下面加上
if(stopforumspam($onlineip,'ip')){

                showmessage('你有发垃圾贴的嫌疑, 不能继续注册');

        }

 

        if(stopforumspam($email,'email')){

                showmessage('你有发垃圾贴的嫌疑, 不能继续注册');

        }

 

        if(stopforumspam($username,'username')){

                showmessage('你有发垃圾贴的嫌疑, 不能继续注册');

        }
复制代码
OK啦,你可以找个经常发垃圾贴的人的用户名(如,琉璃月,呵呵他们的名字经常取的很特别。。。)或者邮箱注册试试看,是不是被拒了。

=========================================================

如果你也希望贡献一份自己的力量,将你发现的垃圾发帖人提交到stopforumspam的数据库,那么修改一下./admin/members.inc.php在删除用户的同时,增加一个提交信息到stopforumspam的选项。

首先到: http://www.stopforumspam.com/signup注册API KEY

修改./admin/members.inc.php


<input type="checkbox" name="includeuc" value="1" class="checkbox" />'.$lang['members_delete_ucdata']
复制代码
后加
.' <input type="checkbox" name="addsfsd" value="1" class="checkbox" />加入Stop Forum Spam Database'
复制代码

if($isfounder && !empty($includeuc)) {

                                require_once DISCUZ_ROOT.'./uc_client/client.php';

                                uc_user_delete($uidarray);

                        }
复制代码
后加
if(!empty($addsfsd)){

                                $stop_forum_spam_api_key = 'pEBQk3njP7UT9H';  /*API KEY, 可以替换成自己申请的*/

                                $query = $db->query("SELECT `uid`,`username`,`lastip`,`email` FROM {$tablepre}members WHERE uid IN ($uids)");

                                while($m_data = $db->fetch_array($query)){

                                        $data = 'username='.$m_data['username'].'&email='.$m_data['email'].'&ip_addr='.$m_data['lastip'].'&api_key='.$stop_forum_spam_api_key;

                                        $context_options = stream_context_create(array ('http' => array ('method' => 'POST','header'=> "Content-type: application/x-www-form-urlencoded\r\n"."Content-Length: " . strlen($data) . "\r\n",'content' => $data)));

                                        $send = file_get_contents('http://www.stopforumspam.com/add',0,$context_options);

                                        unset($data,$context_options,$send);

                                }

}
复制代码
完成
 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
发布者资料
admin 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2008-04-03 07:04 最后登录:2011-12-29 21:12
推荐内容