Страница 1 от 1
За защитата от ботове
Пуснато: 11 февруари 2010, 21:50
от Вилорп
Направи ми впечатление, че при регистрацията има една много хубава защита „Колко прави 6 минус 1 (словом)”, та понеже на моя форум имим проблем с непрекъснато регващи се ботове дали бихте ми редоставили кода за вашата защита или евентуално то къде сте го гледали за да го напишете.
*обнадеждено човече*
пп. Пускам нова тема защото не намерих подходяща в която да плесна въпроса си.
Пуснато: 12 февруари 2010, 13:03
от Борислав
Направил съм го много дървено и е само за версия 2 на phpbb. Първо най-лесното:
Файл templates/subSilver/profile_add_body.tpl:
Преди реда с
Visual Confirmation съм добавил
{CAPTCHA}.
После идва файла includes/usercp_register.php.
Някъде в началото му:
Код: Избиране на всичко
$captchas = array(
'Колко прави 6 минус 2? (словом)' => 'четири',
);
$captchaQuestionField = 'question';
$captchaAnswerField = 'captcha';
$captchaQuestion = @$_POST[$captchaQuestionField];
$captchaAnswer = @$_POST[$captchaAnswerField];
После в края на блока
else if ( $mode == 'register' ) (вътре в if-а):
Код: Избиране на всичко
if ( ! isset($captchas[$captchaQuestion]) ) {
$error = true;
$error_msg .= ( ( empty($error_msg) ) ? '' : '<br />' ) . 'Клиента ви не е успял да предаде въпроса, защитаващ от спамботове! Свържете се с администратора и му съобщете за проблема.';
}
if ( ! preg_match("/^$captchaAnswer$/ui", $captchas[$captchaQuestion]) ) {
$error = true;
$error_msg .= ( ( empty($error_msg) ) ? '' : '<br />' ) . 'Хм… Опитайте да отговорите правилно на въпроса „' . $captchaQuestion . '“.';
}
И накрая при
$template->assign_vars (където е L_CURRENT_PASSWORD).
Преди този ред:
Вътре в масива:
Код: Избиране на всичко
'CAPTCHA' => "<tr><td class='row1'><input type='hidden' name='$captchaQuestionField' value='$captchaQuestion'><label for='$captchaAnswerField'>$captchaQuestion *</label></td><td class='row2'><input type='text' size='10' name='$captchaAnswerField' id='$captchaAnswerField'></td></tr>",
Както виждаш, има един-единствен въпрос, но ми върши прекрасна работа. При желание можеш да добавиш още в масива с въпроси и да си избираш случаен чрез array_rand().
Пуснато: 12 февруари 2010, 14:33
от Вилорп
Изключително много Благодаря! Знам че не се пие и яде, ама... =)
Пуснато: 13 февруари 2010, 17:58
от SecondShoe
Ето го същото нещо, но за phpbb3:
Prime Anti-bot. Върши същата работа като горното, но могат да се избират няколко въпроса. Непробиваема за роботи защита, която е приятелски настроена към хората.