Грамматический антибот для DLE

Грамматический антибот

Грамматический антибот

Идея антибота навеяна, как ни печально, безграмотностью населения интернета.
Суть антибота в том, что человеку предлагается исправить ошибку в слове.
Сразу отмечу плюсы и минусы данного метода:
[+] бесплатно :)
[+] легкость установки :)
[+] уникальность идеи
[+] неограниченный объем слов
[+] возможность кастомизации своей фантазией
[-] бот написанный конкретно под данную капчу со временем легко будет ее обходить

Перейдем к установке.
Открыть файл engine/modules/antibot.php
Найти строку:
$im = new genrandomimage();

ПЕРЕД ней вставить:
$wordarr =<<<HTML
вообщем|в общем
вобще|вообще
мужык|мужик
джып|джип
ворабей|воробей
отабражение|отображение
машына|машина
HTML;

$wordarr = explode("\n",trim($wordarr));
$words = array();
foreach($wordarr as $k=>$v){
	$v = trim($v);
	if($v){
		$v = explode("|",$v);
		if(count($v)>1){
			$v[0] = trim($v[0]);
			$v[1] = trim($v[1]);
			if($v[0] AND $v[1]) $words[] = array($v[0],$v[1]);
		}
	}
}

shuffle($words);
$_SESSION['sec_code_session'] = $words[0][1];
echo $words[0][0];
die();


Открыть файл шаблона, где выводится капча, например register.tpl
На примере стандартного шаблона, найти:
		<tr>
			<td class="label">
				Введите код<br />с картинки:<span class="impot">*</span>
			</td>
			<td>
				<div>{reg_code}</div>
				<div><input type="text" name="sec_code" style="width:115px" class="f_input" /></div>
			</td>
		</tr>

Вместо него вставить:
		<tr>
			<td class="label">
				Исправьте ошибку<br />в слове:<span class="impot">*</span>
			</td>
			<td>
				<span id="cap-word-error"></span> <a href="#" onclick="aworderr();return false;">другое слово</a>
				<div><input type="text" maxlength="45" name="sec_code" style="width:115px" class="f_input" /></div>
				<script>
					function aworderr(){$.get(dle_root+"engine/modules/antibot.php",function(d){$("#cap-word-error").html(d)})}
					aworderr();
				</script>
			</td>
		</tr>


Так же вместо исправления грамматики можно поставить антонимы. В общем на что вашей фантазии хватит.
Чем больше слов вы поставите - тем лучше.

С уважением,
Олег Александрович a.k.a. Sander
Комментарии: (10)
  1. foto
    Клиент 31 августа 2013 11:13 #
    оно так и должно быть? отабражениеяШяа скрин
    +3
    1. foto
      Администратор 31 августа 2013 15:24 #
      Если вы прописали в текстах:
      отабражениеШяа|отображение
      то да, так и должно быть.

      Ну или еще где-то прописали это сами вручную самостоятельно.
      0
      1. foto
        Клиент 1 сентября 2013 12:01 #
        дело в том что я такое не прописывал, перепроверил еще раз нету такого Шяа, в шаблоне и в antibot.php
        нажимаю другое слово, появляется другое слово с этим же окончанием Шяа.
        -1
  2. foto
    Клиент 1 сентября 2013 12:14 #
    вот видео, на котором показано что все прописал как написано здесь.
    0
    1. foto
      Администратор 1 сентября 2013 13:29 #
      Точно. Когда писал инструкцию - не весь код скопировал из antibot.php
      После последней вставляемой строки:
      echo $words[0][0];

      надо добавить
      die();


      PS. Инструкцию исправил.
      0
  3. foto
    Клиент 2 сентября 2013 09:25 #
    вот теперь отлично работает, спасибо.
    0
  4. foto
    Посетитель 18 сентября 2013 20:33 #
    добавь возможность редактировать комментарии, как на dle-faq, тогда ошибок будет меньше, мне на хабре это сильно помогает, там дается 5 минут, которых хватает что бы дополнить или исправить ошибки.
    0
    1. foto
      Администратор 18 сентября 2013 21:20 #
      Я так полагаю это относится не конкретно к хаку, а скорее к моему блогу?
      Предложение хорошее, так и сделаю.
      0
  5. foto
    Посетитель 22 сентября 2013 07:43 #
    Хороший хак, может пригодится.
    0
  6. foto
    Посетитель 19 ноября 2013 10:13 #
    не отображает почему слова, стоит: исправьте ошибку в слове, и все..
    0
Добавить комментарий
  • Логин
  • E-mail (не обязательно)
Повторите рисунок:
antibot
© Sander-Development. 2009-2018.
При копировании, ссылка на источник обязательна.