ZIM
Пользователь
Мод был написан мной когда спамботы начали очень сильно доставать оставляя по сотни сообщений в темах. Некоторые проходили активацию по почте.
Открываем usercp_register.php
Ищем
После
Ищем
После
Ищем
После
Ищем
После
Открываем usercp_register.tpl
Ищем
После
Открываем lang_main.php и в самый конец вставляем
В общем алгоритм очень простой и унылый. Но работает. Кроме того мне было трудно перенести это мод со старой версии трекера так как код usercp_register.php порядочно изменился. Так что если что-то я поставил не туда то я не специально. На данный момент все работает. В любом случае со спамботами на HQ версии были проблемы.
Открываем usercp_register.php
Ищем
PHP:
$tp_data = array(); // данные для tpl
PHP:
// Anti spam bot
if(!empty($_POST['num1']) && !empty($_POST['num2']) && !empty($_POST['postnum'])){
$num1=intval($_POST['num1']);
$num2=intval($_POST['num2']);
$isnum=$num1+$num2;
$postnum=intval($_POST['postnum']);
}else{
$isnum = 0;
$postnum = -1;
}
Ищем
PHP:
if ($need_captcha && !CAPTCHA()->verify_code())
{
$errors[] = $lang['CONFIRM_CODE_WRONG'];
}
}
После
PHP:
// Anti spam bot
$need_chekbot = ($mode == 'register' && !IS_ADMIN);
if ($submit && $postnum!=$isnum && $need_chekbot)
{
$errors[] = $lang['IS_SPAM_BOT'];
}
Ищем
PHP:
else
{
bb_die($lang['NOTHING_HAS_CHANGED']);
}
}
}
PHP:
// Anti spam bot
$num1=intval(rand(1, 10));
$num2=intval(rand(1, 10));
Ищем
PHP:
'U_RESET_AUTOLOGIN' => "login.php?logout=1&reset_autologin=1&sid={$userdata['session_id']}",
PHP:
// Anti spam bot
'NEED_CHEK_BOT' => $need_chekbot,
'NUM1' => $num1,
'NUM2' => $num2,
'ANTI_SPAM' => $lang['ANTI_SPAM'],
'MSG_ANTI_SPAM' => $lang['MSG_ANTI_SPAM'],
Открываем usercp_register.tpl
Ищем
PHP:
<!-- IF CAPTCHA_HTML -->
<tr>
<td>{L_CONFIRM_CODE}:</td>
<td><span id="refresh_captcha">{CAPTCHA_HTML}</span> <img align="middle" src="/images/pic_loading.gif" title="{L_UPDATE}" onclick="ajax.exec({ action: 'user_register', mode: 'refresh_captcha'}); return false;"></td>
</tr>
<!-- ENDIF -->
PHP:
<!-- IF NEED_CHEK_BOT -->
<tr>
<td>{L_ANTI_SPAM}: * <h6>{MSG_ANTI_SPAM}: {NUM1}+{NUM2} = ?</h6></td>
<input type="hidden" name="num1" value="{NUM1}" />
<input type="hidden" name="num2" value="{NUM2}" />
<td><input type="text" name="postnum" size="35" maxlength="8" /></td>
</tr>
<!-- ENDIF -->
Открываем lang_main.php и в самый конец вставляем
PHP:
// Anti spam bot
$lang['ANTI_SPAM'] = 'Антиспам бот проверка';
$lang['MSG_ANTI_SPAM'] = 'Сколько будет';
$lang['IS_SPAM_BOT'] = 'Ошибка при проверка. Неправильный ответ на антиспам вопрос';
В общем алгоритм очень простой и унылый. Но работает. Кроме того мне было трудно перенести это мод со старой версии трекера так как код usercp_register.php порядочно изменился. Так что если что-то я поставил не туда то я не специально. На данный момент все работает. В любом случае со спамботами на HQ версии были проблемы.