注意本方法在注册时就会检索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);
}
}
复制代码
完成
