Защита от спам ботов на форуме 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}’ /> <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;
Готово! Теперь спам боты не смогут пройти регистрацию просто так, а люди наоборот без проблем пройдут регистрацию.
Не работает ваш дополненный код ucp.php в phpBB3
Обоснуйте и покажите пример ставки в вашем случае на стиле просильвер например
По крайне мере это не работает там.
И вы забыли указать чайникам путь до этих файлов,
а то наверное ищут поди до сих пор где эти файлы.:)
А они тут например:/styles/prosilver/template/ucp_agreement.html
И про кодировку у вас ни слова
А то чайники могут и спутать при сохранении файла в не той кодировке что нужна ( UTF-8 по умолчанию )
Исправляйте пост до конца и ищите проблему почему не работает ваш код в версиях phpBB 3.09
скорее всего Вы просто не добавили поля «name»… А так мне трудно сказать почему не работает…
Я описал в точности как я сделал…
Путь до файла я не указал, т.к. все в админке делал… Там файлы не надо искать…
Согласен можно и в админке_Стили_Шаблоны_ Стиль по файлам редактировать,
Но какие и в каком месте поля name я пропустил?
И в версии 3.09 Части кода описанные вами немного отличаются от ваших в стандартном исполнении стиля просильвер.
Но найти о понять к счастью легко и просто.
За это спасибо.
Но дальше не могу пройти почему то,
редакция файла и вставка вашего значения в ucp.php не срабатывает и вылетает ошибка.
Причина,добавка if (isset($_REQUEST[‘agreed’]) && (!isset($_POST[‘yanebot’]) || ($_POST[‘yanebot’]!=’on’)))
{
redirect(append_sid(‘index.$phpEx’));
}
В чем тогда фишка?
Может в префиксе отличного от phpBB?
В пхпББ 3.010 вообще ничего похожего нет, увы…
А если оно выглядит вот так:
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’])
значит у Вас другая версия
Про звездатость упомянула потому, что не до конца понятен процесс их присуждения, поэтому, имею подозрение, что процент положительных отзывов тоже на это влияет. Хотя, вижу звездатых авторов с процентом не выше 50. emmail. Отзыв Да, диета по группе крове это сильная вещь! Очень эффективная! Сидели на такой всей семьёй результат великолепный (10 лет назад начали такое практиковать по книге Четыре группы крови, четыре образа жизни. Всё шло замечательно, а потом добившись отличных результатов поставленного эксперимента потихоньку всё подзабросили , и.. Вот результат прошло 10 лет , наросло много , даже очень много лишних кг, но вот сила воли совсем потерялась где то((( Теперь вот собираюсь духом на новый эксперимент с результатом!!! Огромное спасибо за хойю! Черенки пришли в отличном состоянии: бережно и аккуратно упакованы,сильные и без каких-либо повреждений. Продавец очень терпеливо объяснил все нюансы пересылки, ухода и сортовых особенностей. Посылка отправлена оперативно. Стоимость весьма демократичная. Мои рекомендации!
Георгий Исаенко Гольденсон сдох как свинья