Капча

Статус
В этой теме нельзя размещать новые ответы.
Вот еще один вариант капчи, требующий простого сложения чисел...
PHP:
<?php
$absrand=34;
if(isset($_POST['usernum']) and isset($_POST['result'])){
sleep(1);
$userkey=$_POST['usernum']+$absrand;
$userkey=md5("$userkey");
if ($userkey!=$_POST['result']) {
echo "<center>Введённый вами код <font color=red>НЕ ВЕРЕН</font>!</center>";
exit;
} else {
echo "<center>Введённый вами код <font color=green>ВЕРЕН</font>!</center>";
}
} else {
$chisla=array();
	$chisla[0]=array("","один","два","три","четыре","пять","шесть","семь","восемь","девять");
	$chisla["d"]=array("десять","одиннадцать", "двенадцать", "тринадцать","четырнадцать", "пятнадцать", "шестнадцать","семнадцать", "восемнадцать", "девятнадцать");//числа от 10 до 19
	$chisla[1]=array("","","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят", "девяносто");//десятки
	$chisla[2]=array("","сто", "двести","триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот","девятьсот");//сотни
	$chisla["t"]=0;
	function c_to_s($a,$b,$c=0)
		{
			global $chisla;
			switch ($a)
			{
				case 4:$a=1;$chisla["t"]+=$b;
				break;
				case 5:$a=2;$chisla["t"]+=$b;
				break;
			}			
			return $chisla[$a][$b]." ";
		}	
	function cifra($a) {
	$a_m=array();
	for(;$a!=0;$a=floor($a/10))
		$a_m[] = ($a%10);
	$a_m=array_reverse($a_m,true);
	$d=true;
	$chislo='';
	foreach ($a_m as $k=>$v)
		if($d)
			if($v==1&&$k==1||$v==1&&$k==4)
				$d=false;
			else 
				$chislo.=c_to_s($k,$v);
		elseif(!$d)
		{
			$chislo.=c_to_s("d",$v,$k);
			$d=true;
		}
	return $chislo;
	}
	$ra=rand(10,99);
	$ratxt=cifra($ra);
	$rb=rand(1,9);
	$rbtxt=cifra($rb);
	$r=$ra+$rb;
	$r=$r+$absrand;
	$r=md5("$r");
echo '
<form method="POST">
Сколько будет <strong>'.$ratxt.'+ '.$rbtxt.'</strong>?<br><br>Ответ запишите цифрами: <input type="text" size="4" name="usernum" value=""> 
<input type="hidden" name="result" value="'.$r.'">
<input type="submit" value="Отправить">
</form>
';
}
?>
 

Вложения

  • captcha.jpg
    captcha.jpg
    23,9 KB · Просмотры: 15
А если в программе установлена капча,там даются пробные капчи,он всё нормально распознают,но зти капчи надо покупать у автора....возможно как-то самому добавить?
 
Дайте пример кода для распознавания капчи.
 
Если капча достаточно сложна, то врядли на програмном уровне. Скорее всего антикапча с отрядом школьников. Поможет дополнительное поле с проверкой: типо выбрать цифру, дать ответ, выделить картинку. Или, как было написано выше, добавить скрытую фейк форму.
 
лучше вместо капчи использовать фейковые поля, которые робот заполнит на автомате а человек нет
 
лучше вместо капчи использовать фейковые поля, которые робот заполнит на автомате а человек нет
по теории так и должно быть, но на практике они их видят сволочи, видят так же как и человек - проверенно на практике!
 
по теории так и должно быть, но на практике они их видят сволочи, видят так же как и человек - проверенно на практике!

Значит надо эти поля грамотно прятать или обзывать их так ,чтобы бот обязательно их заполнил.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху