############################################################## ## Название: Контрольный вопрос при регистрации ## Автор: Druid ## Описание: Это защита от регистрации ботов. ## Сложность: легко ############################################################## ======================================================================================================= ====== Открываем language/lang_russian/lang_main.php. В самый конец добавляем: ======================================================================================================= // The anti bots $lang['ARE_U_HUMAN'] = 'Назовите спутник планеты Земля?'; $lang['ARE_U_HUMAN_EXPLAIN'] = 'Это защита от регистрации ботов, введите ответ на контрольный вопрос.'; $lang['ARE_U_HUMAN_WRONG'] = 'Вы не правильно ответили на "контрольный" вопрос.'; // Возможные ответы $lang['HUMANIZER_ANSWERS'] = 'moon,луна'; ======================================================================================================= ====== открываем templates/default/usercp_register.tpl находим: ======================================================================================================= {L_BOARD_LANG}: {LANGUAGE_SELECT} ======================================================================================================= ====== после этого добавляем: ======================================================================================================= {L_ARE_U_HUMAN} *
{L_ARE_U_HUMAN_EXPLAIN}
 [Онлайн проверка слов на ошибки] ======================================================================================================= ====== открываем includes/ucp/usercp_register.php находим: ======================================================================================================= $pr_data = array(); // данные редактируемого либо регистрационного профиля $db_data = array(); // данные для базы: регистрационные либо измененные данные юзера $tp_data = array(); // данные для tpl ======================================================================================================= ====== ниже добавляем: ======================================================================================================= // The anti bots $humanizer_attribute = md5($bb_cfg['board_startdate'] + $bb_cfg['avatar_filesize'] * $bb_cfg['announce_interval']); $ruhuman = isset($_POST[$humanizer_attribute]) ? $_POST[$humanizer_attribute] : ''; $ruhuman = trim(htmlspecialchars($ruhuman)); ======================================================================================================= ====== находим: ======================================================================================================= if ($need_captcha && !CAPTCHA()->verify_code()) { $errors[] = $lang['CONFIRM_CODE_WRONG']; } ======================================================================================================= ====== ниже добавляем: ======================================================================================================= if ($mode == 'register' && !IS_ADMIN) { if (empty($ruhuman)) { $errors[] = $lang['ARE_U_HUMAN_WRONG']; } elseif (strpos(mb_strtolower($lang['HUMANIZER_ANSWERS'],"UTF-8"), mb_strtolower($ruhuman,"UTF-8"))===FALSE) { $errors[] = $lang['ARE_U_HUMAN_WRONG']; } } ======================================================================================================= ====== находим: ======================================================================================================= 'SIG_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'allow_sig'), ======================================================================================================= ====== ниже добавляем: ======================================================================================================= // The anti bots 'HUMANIZER'=> stripslashes(@$ruhuman), 'S_HUMANIZER_ATTRIBUTE' => @$humanizer_attribute, ======================================================================================================= ====== находим: ======================================================================================================= 'PR_USER_ID' => $pr_data['user_id'], 'U_RESET_AUTOLOGIN' => "login.php?logout=1&reset_autologin=1&sid={$userdata['session_id']}", )); ======================================================================================================= ====== ниже добавляем: ======================================================================================================= // The anti bots if ( $mode == 'register' ) { $template->assign_block_vars('switch_register', array()); }