Защита от спам ботов на форуме phpbb3

Замучили меня эти спам боты и я решил начать настоящую борьбу с ними. Недавно как раз наткнулся на пост на одном блоге, как раз про то, как защититься от спама на phpbb3. Я бы мог скинуть ссылку на этот пост и забить, но дело в том, что весь код там представлен в картинках, поэтому Вам придется его переписывать вручную и ещё объяснения не совсем понятные.

В первую очередь откройте файл ucp_agreement.html. В этом файле нужно прописать одну строчку. Найдите такой кусок кода:

<div align=’center’>
<input type=’submit’ id=’agreed’ name=’agreed’ value='{L_AGREE}’ /><br /><br />
<input type=’submit’ name=’not_agreed’ value='{L_NOT_AGREE}’ />
</div>

Перед ним вставьте это:

<div align=center><input type=’checkbox’ name=’yanebot’>Я уверен, что хочу стать зарегистрированным пользователем</div>

Теперь откройте файл ucp_register.html. Найдите этот кусок кода:

<tr>
<td colspan=’2′ align=’center’>{S_HIDDEN_FIELDS}<input type=’submit’ name=’submit’ id=’submit’ value='{L_SUBMIT}’ />&nbsp;&nbsp;<input type=’reset’ value='{L_RESET}’ name=’reset’ /></td>
</tr>

Перед этим куском кода впишите следующее:

<tr>
<td><b>Поставьте галочку:</b><br /><span>Это сделано для защиты от спам ботов</span></td>
<td><input type=’checkbox’ name=’yanebot’>Я не бот</td>
</tr>

Визуально мы все сделали. Теперь осталось прописать в коде пару строчек, чтобы все ещё и функционировало. Заходим в файл ucp.php (он лежит в корне сайта). Найдите такой кусок кода:

case ‘register’:
if($user->data[‘is_registered’] || isset($_REQUEST[‘not_agreed’]))
{
redirect(append_sid(‘<$phpbb_root_path>index.$phpEx’));
}
$module->load(‘ucp’, ‘register’);
$module->display($user->lang[‘REGISTER’]);
break;

Исправьте его на следующий:

case ‘register’:
if($user->data[‘is_registered’] || isset($_REQUEST[‘not_agreed’]))
{
redirect(append_sid(‘<$phpbb_root_path>index.$phpEx’));
}
if (isset($_REQUEST[‘agreed’]) && (!isset($_POST[‘yanebot’]) || ($_POST[‘yanebot’]!=’on’)))
{
redirect(append_sid(‘<$phpbb_root_path>index.$phpEx’));
}
$module->load(‘ucp’, ‘register’);
$module->display($user->lang[‘REGISTER’]);
break;

Готово! Теперь спам боты не смогут пройти регистрацию просто так, а люди наоборот без проблем пройдут регистрацию.



9 комментариев на “Защита от спам ботов на форуме phpbb3”

  • ASmit says:

    Не работает ваш дополненный код ucp.php в phpBB3

    Обоснуйте и покажите пример ставки в вашем случае на стиле просильвер например
    По крайне мере это не работает там.

    И вы забыли указать чайникам путь до этих файлов,
    а то наверное ищут поди до сих пор где эти файлы.:)

    А они тут например:/styles/prosilver/template/ucp_agreement.html

    И про кодировку у вас ни слова
    А то чайники могут и спутать при сохранении файла в не той кодировке что нужна ( UTF-8 по умолчанию )

    Исправляйте пост до конца и ищите проблему почему не работает ваш код в версиях phpBB 3.09

  • admin says:

    скорее всего Вы просто не добавили поля «name»… А так мне трудно сказать почему не работает…
    Я описал в точности как я сделал…

    Путь до файла я не указал, т.к. все в админке делал… Там файлы не надо искать…

  • ASmit says:

    Согласен можно и в админке_Стили_Шаблоны_ Стиль по файлам редактировать,
    Но какие и в каком месте поля name я пропустил?
    И в версии 3.09 Части кода описанные вами немного отличаются от ваших в стандартном исполнении стиля просильвер.
    Но найти о понять к счастью легко и просто.
    За это спасибо.
    Но дальше не могу пройти почему то,
    редакция файла и вставка вашего значения в ucp.php не срабатывает и вылетает ошибка.
    Причина,добавка if (isset($_REQUEST[‘agreed’]) && (!isset($_POST[‘yanebot’]) || ($_POST[‘yanebot’]!=’on’)))
    {
    redirect(append_sid(‘index.$phpEx’));
    }

    В чем тогда фишка?

  • ASmit says:

    Может в префиксе отличного от phpBB?

  • 666 says:

    В пхпББ 3.010 вообще ничего похожего нет, увы…

  • Александр says:

    А если оно выглядит вот так:

    case ‘register’:
    if ($user->data[‘is_registered’] || isset($_REQUEST[‘not_agreed’]))
    {
    redirect(append_sid(«{$phpbb_root_path}index.$phpEx»));
    }

    $module->load(‘ucp’, ‘register’);
    $module->display($user->lang[‘REGISTER’]);
    break;
    ______________________________________
    Полное изменение дает полные ошибки…
    Вставка этой переменой && (!isset($_POST[‘yanebot’]) || ($_POST[‘yanebot’]!=’on’)))
    особых ошибок не давала, но и толку то же.
    У меня к примеру изначально такого нет — if (isset($_REQUEST[‘agreed’])

  • admin says:

    значит у Вас другая версия

  • Paicslip says:

    Про звездатость упомянула потому, что не до конца понятен процесс их присуждения, поэтому, имею подозрение, что процент положительных отзывов тоже на это влияет. Хотя, вижу звездатых авторов с процентом не выше 50. emmail. Отзыв Да, диета по группе крове это сильная вещь! Очень эффективная! Сидели на такой всей семьёй результат великолепный (10 лет назад начали такое практиковать по книге Четыре группы крови, четыре образа жизни. Всё шло замечательно, а потом добившись отличных результатов поставленного эксперимента потихоньку всё подзабросили , и.. Вот результат прошло 10 лет , наросло много , даже очень много лишних кг, но вот сила воли совсем потерялась где то((( Теперь вот собираюсь духом на новый эксперимент с результатом!!! Огромное спасибо за хойю! Черенки пришли в отличном состоянии: бережно и аккуратно упакованы,сильные и без каких-либо повреждений. Продавец очень терпеливо объяснил все нюансы пересылки, ухода и сортовых особенностей. Посылка отправлена оперативно. Стоимость весьма демократичная. Мои рекомендации!

  • goldenson says:

    Георгий Исаенко Гольденсон сдох как свинья

Реклама
Подпишись на блог
E-mail рассылка:
Я есть в twittere
Я есть в facebook
Я есть в vkontakte