Решение против спам-ботов для phpBB

Проблема со спамом на форуме актуальна. Спамеры приловчились обходить не только стандартный дистрибутив, моды и «загадки», но и даже над использованием reCAPTCHA программы allsubmitter’e или Хрумере для спама одержали победу.

Попробуем обмануть спамеров и добавим дополнительно чекбокс при регистрации, что должно ввести в замешательство ботов регистраторов.

Нам потребуется для работы три файла: ucp.php находится в корне форума, ucp_agreement.html — страница соглашения, находится в styles/prosilver/template и файл ucp_register.html находится там же.

В файле 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;

и добавляем перед $module->load(‘ucp’, ‘register’);

if (isset($_REQUEST[‘agreed’]) && (!isset($_POST[‘greg’]) || ($_POST[‘greg’] != ‘on’)))
{
redirect(append_sid(» {$phpbb_root_path} index.$phpEx»));
}

Получается:

Далее файл ucp_agreement.html
Добавляем:

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

Получается:

Выглядит это так:

Далее файл ucp_register.html

Добавляем строку: <div align=center style=»font=size: 14px; font=weight: 700″><input type=»checkbox» name=»greg»/> Я небот</div> у меня это 100 строка и результат выглядит так:

результат: 

В результате произведенных дополнений мы получаем при регистрации дополнительные чек боксы для подтверждения уверенности стать зарегистрированным пользователем в пользовательском соглашении, файл ucp_agreement.html и дополнительный чек бокс в форме регистрации, файл ucp_register.html
Спамный бот просто сфигеет, когда по привычке не отметится галочкой и его перебросит на главную страницу форума, буквально на первом шаге регистрации.