Хак Простое решение против спамеров
Всех уже достали эти спамеры, регистрируются и оставляют комменты с рекламой или бессмысленными фразами.
Конечно же, меня эта глобальная проблема тоже не обошла стороной.
И пришлось придумать решение, которое позволит запретить ботам регистрироваться на сайте.
Цель: запретить ботам регистрироваться на сайте
Решение: ввести дополнительную, простенькую проверку
Тестировалось на: DataLife Engine 7.5
И так, далее инструкция и сам код:
1) Открываем файл engine/modules/ register.php и ищем в нём (37 строку):
Сразу после этого вставляем:
2) Далее ищем (с 169 по 176 строки):
после вставляем:
3) Ищем (199 - 202):
Прямо перед
вставляем:
Ищем (203 - 206):
после:
вставляем:
4) Последний шаг, открываем файл templates/Ваш шаблон/registration.tpl и между тегами [/sec_code] и [/registration], вставляете:
Автор: infocean
Конечно же, меня эта глобальная проблема тоже не обошла стороной.
И пришлось придумать решение, которое позволит запретить ботам регистрироваться на сайте.
Цель: запретить ботам регистрироваться на сайте
Решение: ввести дополнительную, простенькую проверку
Тестировалось на: DataLife Engine 7.5
И так, далее инструкция и сам код:
1) Открываем файл engine/modules/ register.php и ищем в нём (37 строку):
if( $sec_code != $sec_code_session or ! $sec_code_session ) $stop .= $lang['reg_err_19'];
Сразу после этого вставляем:
if(empty($_POST['mark'])){
$stop .= "Выберите кружок!";
} else {
if($_POST['mark'] != $_SESSION['codes']){
$stop .= "Выбран Неверный кружок! Ботам тут не место!!! :)";
}
}
2) Далее ищем (с 169 по 176 строки):
if( $doaction != "validating" and ! $stopregistration ) {
if( $_POST['dle_rules_accept'] == "yes" ) {
@session_register( 'dle_rules_accept' );
$_SESSION['dle_rules_accept'] = "1";
}
после вставляем:
// Генерируем рандомно число от 1 до 7
$mark = mt_rand(1,7);
$marks = array ("Первый" => "1", "Второй" => "2", "Третий" => "3", "Четвёртый" => "4", "Пятый" => "5", "Шестой" => "6", "Седьмой" => "7");
$marks_check = array_search($mark, $marks);
// Помещаем цифру в сессию
$_SESSION['codes'] = $mark;
3) Ищем (199 - 202):
if( $config['allow_sec_code'] == "yes" ) {
$tpl->set( '[sec_code]', "" );
$tpl->set( '[/sec_code]', "" );
$tpl->set( '{reg_code}', "{$lang['reload_code']}" );
Прямо перед
} else {,
вставляем:
$tpl->set( '{mark}', "$marks_check" );
Ищем (203 - 206):
} else {
$tpl->set( '{reg_code}', "" );
$tpl->set_block( "'\\[sec_code\\](.*?)\\[/sec_code\\]'si", "" );
}
после:
$tpl->set( '{reg_code}', "" ); ,
вставляем:
$tpl->set( '{mark}', "" );
4) Последний шаг, открываем файл templates/Ваш шаблон/registration.tpl и между тегами [/sec_code] и [/registration], вставляете:
Дополнительная защита от спамеров
Если вы Человек, то выберите {mark} кружок!
Выберите кружок:
1
2 3
4 5
6 7
Автор: infocean