Код: Выделить всё
##############################################################
## MOD Title: Kill bot
## MOD Author: CodeWorld < codeworld ]@[ yandex.ru >
## MOD Description: breaked bot registration
## MOD Version: 0.0.3 [phpBB 2.0.20]
##
## Installation Level: Easy
## Installation Time: 5 Minutes
## Files To Edit (2): includes/usercp_register.php
## templates/subSilver/profile_add_body.tpl
##############################################################
## MOD History:
##
## 2006-05-04 - Version 0.0.1
## - its created
##
## 2006-05-05 - Version 0.0.2
## - log in bots.html
##
## 2006-05-06 - Version 0.0.3
## - logging what user write in control field
##
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<tr>
<td class="row1"><span class="gen">{L_CONFIRM_PASSWORD}: * </span><br />
<span class="gensmall">{L_PASSWORD_CONFIRM_IF_CHANGED}</span></td>
<td class="row2">
<input type="password" class="post" style="width: 200px" name="password_confirm" size="25" maxlength="32" value="{PASSWORD_CONFIRM}" />
</td>
</tr>
#
#-----[ AFTER ADD ]------------------------------------------
#
<!-- BEGIN switch_user_logged_out -->
<tr>
<td class="row1" width="38%"><span class="gen">Enter url of this site: * </span><br /><span class="gensmall">e.g. 'my.site.com'</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="mycurl" size="25" maxlength="55" value="" /></td>
</tr>
<!-- END switch_user_logged_out -->
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
#
if ( $mode == 'editprofile' )
{
if ( $user_id != $userdata['user_id'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];
}
}
#
#-----[ AFTER ADD ]------------------------------------------
#
//-------------------- kill bot mod ----------------------------
else if ((strpos(strtolower($_POST['mycurl']),strtolower($_SERVER["HTTP_HOST"]))===false))
{
$error = TRUE;
$error_msg .= 'Site url not correct';
function killbot_log($date_) {
$mystr=$date_.'<br>';
if(@copy("bots.html", "bots.tmp"))
{
if($w=fopen("bots.html","w+"))
{
flock($w,2);
fwrite($w,$mystr);
if(!$r=fopen("bots.tmp","r+")) die("can't open file");
flock($r,1);
while($mes=fgets($r,10240))
{
fputs($w,$mes);
}
flock($r,3);
fclose($r);
flock($w,3);
fclose($w);
unlink("bots.tmp");
}
} else { $f = fopen("bots.html","at+") or die("FILE ERROR"); flock($f,LOCK_EX); fputs($f,$mystr); fclose($f); }
}
$mymsg='<b>['.date("m.d.y H:i").']</b> <ul>Ник: '.$username;
$mymsg.='<br>IP: '.$_SERVER["REMOTE_ADDR"];
if ($email!=='') $mymsg.='<br>Email: '.$email;
if (trim($website)!=='') $mymsg.='<br>Сайт: <a href="'.$website.'">'.$website.'</a>';
if ($interests!=='') $mymsg.="<br>Интересы: $interests";
if ($occupation!=='') $mymsg.="<br>Род занятий: $occupation";
if ($signature!=='') $mymsg.="<br>Подпись: $signature";
if (trim($_POST['mycurl'])!=='') $mymsg.="<br>В поле ввёл: ".addslashes($_POST['mycurl']);
$mymsg.='</ul>';
killbot_log($mymsg);
}
//------------------ end kill bot mod --------------------------
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
При регистрации появляется дополнительное поле, в которое надо ввести адрес форума. Если оно вводится не верно, то пользователь получает уведомление, о том, что поле заполнено не правильно и в корне форума создаётся файл bots.html куда записываются все не удачные попытки регистрации.
Всем ботам на зло!
Аминь.

