Защита от спамеров

Тема в разделе "Корзина", создана пользователем Ferry, 3 июл 2011.

Статус темы:
Закрыта.
  1. Ferry

    Ferry Пользователь

    Сообщения:
    3
    Симпатии:
    0
    Название: Защита от спамеров.
    Автор: RusTrek
    Сложность: легко

    Защита от регистрации ботов на форуме, на скрине все видно.

    В ланге прописываем сам вопрос и возможный ответ на вопрос.

    [Битая ссылка на изображение]: http://img690.imageshack.us/img690/9343/screenshot2403201121502.png
    #
    #-----[ Открываем ]------------------------------------------------------------------
    #

    includes/upc/usercp_register.php

    #
    #-----[ Находим ]------------------------------------------------------------------
    #
    Код:
    validate_optional_fields(validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);
    #

    #-----[ Ниже добавляем ]------------------------------------------------------------

    #
    Код:
    // The anti bots
        $humanizer_attribute = md5(($board_config['board_startdate'] + $board_config['board_timezone']) * $board_config['avatar_filesize']);
        $ruhuman = isset($HTTP_POST_VARS[$humanizer_attribute]) ? $HTTP_POST_VARS[$humanizer_attribute] : '';
        $ruhuman = trim(htmlspecialchars($ruhuman));
    #
    #-----[ Находим ]------------------------------------------------------------------
    #
    Код:
    if ($bb_cfg['enable_confirm'] && $mode == 'register')
    #
    #-----[ Выше добавлям ]-----------------------------------------------------------
    #

    Код:
    // The anti bots
        $humanizer_answers = $lang['humanizer_answers'];
        if (!in_array(strtolower($ruhuman), $humanizer_answers) && $mode == 'register')
        {
            $error = TRUE;
            $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Are_u_human_wrong'];
        }
    #
    #-----[ Находим ]------------------------------------------------------------------
    #
    Код:
    if ( ($mode == 'register') || ($bb_cfg['allow_namechange']) )
    #
    #-----[ Выше добавлям ]-----------------------------------------------------------
    #
    Код:
    // The anti bots
        if ( $mode == 'register' )
        {
            $template->assign_block_vars('switch_register', array());
        }
    #
    #-----[ Находим ]------------------------------------------------------------------
    #
    Код:
    'SIGNATURE' => str_replace('<br />', "\n", $signature),
    #
    #-----[ Ниже добавляем ]------------------------------------------------------------
    #
    Код:
    // The anti bots
            'HUMANIZER' => stripslashes(@$ruhuman),
    #
    #-----[ Находим ]------------------------------------------------------------------
    #
    Код:
    'L_EMAIL_ADDRESS' => $lang['Email_address'],
    #

    #-----[ Ниже добавляем ]------------------------------------------------------------

    #
    Код:
    // The anti bots
            'L_ARE_U_HUMAN' => $lang['Are_u_human'],
            'L_ARE_U_HUMAN_EXPLAIN' => $lang['Are_u_human_explain'],
    #

    #-----[ Находим ]------------------------------------------------------------------

    #
    Код:
    'S_ALLOW_AVATAR_UPLOAD' => $bb_cfg['allow_avatar_upload'],
    #

    #-----[ Выше добавлям ]-----------------------------------------------------------

    #
    Код:
    // The anti bots
            'S_HUMANIZER_ATTRIBUTE' => @$humanizer_attribute,




    #

    #-----[ Открываем ]------------------------------------------------------------------

    #

    templates/default/usercp_register.tpl

    #

    #-----[ Находим ]------------------------------------------------------------------

    #
    Код:
    <!-- END switch_confirm -->
    #

    #-----[ Ниже добавляем ]------------------------------------------------------------

    #
    Код:
    <!-- BEGIN switch_register -->
        <tr>
          <td class="row1"><span class="gen">{L_ARE_U_HUMAN} *</span><br /><span class="gensmall">{L_ARE_U_HUMAN_EXPLAIN}</span></td>
          <td class="row2">
            <input type="text" name="{S_HUMANIZER_ATTRIBUTE}" class="post" style="width: 100px" size="10" maxlength="15" value="{HUMANIZER}" />
          </td>
        </tr>
        <!-- END switch_register -->







    #

    #-----[ Открываем ]------------------------------------------------------------------

    #



    language/lang_russian/lang_main.php



    #

    #-----[ В самый низ добавляем ]-----------------------------------------------------------

    #
    Код:
    // The anti bots
    $lang['Are_u_human'] = 'Вы человек?';
    $lang['Are_u_human_explain'] = 'Это защита от регистрации ботов, введите ответ на контрольный вопрос.';
    $lang['Are_u_human_wrong'] = 'Вы не правильно ответили на &quot;контрольный&quot; вопрос.';
    
    // Возможные ответы
    $lang['humanizer_answers'] = array( 'да', 'yes', 'jes');
     
  2. _Xz_

    _Xz_ Пользователь

    Сообщения:
    370
    Симпатии:
    236
    Версия TP:
    иная
    интересно будет посмотреть как ты будешь это добавлять в движок)

    PS на этом форуме идёт разработка только одного движка http://code.google.com/p/torrentpier2/
     
  3. dimka3210

    dimka3210 Пользователь

    Сообщения:
    1.306
    Симпатии:
    519
    С таким же успехом можно было поставить чекбокс.
     
  4. Exile

    Exile Администратор

    Сообщения:
    3.098
    Симпатии:
    1.702
    Версия TP:
    2.2.3
    В печь тему.
     
Статус темы:
Закрыта.

Поделиться этой страницей