[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: captcha...
MatrixGod
всем здр!

люди, кто знает хороший сервис который предоставляет капчи?
самому писать не хочется...

только так чтоб капчи были относительно простые и не "нудные".

recaptcha.net не предлогать, он слишком завороченный...



Спустя 1 минута, 9 секунд (8.03.2010 - 14:57) jetistyum написал(а):
ну вот, как раз рекаптчу и хотел предложить... чем же не понравилась ?
а вообще стоит погуглить ..

Спустя 10 минут, 34 секунды (8.03.2010 - 15:08) MatrixGod написал(а):
она выдает слишком длинные слова.
пользователей это злит!

Спустя 33 секунды (8.03.2010 - 15:08) MatrixGod написал(а):
наших, русских капч никаких разве нет?

я гуглил но ничего не нашел...

Спустя 24 минуты, 43 секунды (8.03.2010 - 15:33) Lenarfate написал(а):
держи!
<?php

session_start();


$width = 100;
$height = 40;
$font_size = 12;
$let_amount = 5;
$back_let_amount = 30;
$path_fonts = 'fonts/';

$letters = array(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm',
'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
'z', '2', '3', '4', '5', '6', '7', '9'
);

$colors = array('10', '30', '50', '70', '90', '110',
'130', '150', '170', '190', '210'
);


$im = imagecreatetruecolor($width, $height);
$back = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $back);


$fonts = array();
$dir = opendir($path_fonts);

while($font_name = readdir($dir))
{
if($font_name !='.' && $font_name != '..')
$fonts[] = $font_name;
}

closedir($dir);


for($i = 0; $i < $back_let_amount; $i++)
{
$color = imagecolorallocatealpha($im, rand(0, 255), rand(0, 255), rand(0, 255), 100);

$font = $path_fonts . $fonts[rand(0, sizeof($fonts) - 1)];
$letter = $letters[rand(0, sizeof($letters) - 1)];
$size = rand($font_size - 2, $font_size + 2);

imagettftext($im, $size, rand(0, 45), rand($width * 0.1, $width - $width * 0.1),
rand($height * 0.2 , $height), $color, $font, $letter);
}

for($i = 0; $i < $let_amount; $i++)
{
$color = imagecolorallocatealpha($im, $colors[rand(0, sizeof($colors) - 1)],
$colors[rand(0, sizeof($colors) - 1)],
$colors[rand(0, sizeof($colors) - 1)], rand(20, 40));

$font = $path_fonts . $fonts[rand(0, sizeof($fonts) - 1)];
$letter = $letters[rand(0, sizeof($letters) - 1)];
$size = rand($font_size * 2.1 - 2, $font_size * 2.1 + 2);
$x = ($i + 1) * $font_size + rand(4, 7);
$y = (($height * 2) / 3) + rand(0, 5);
$code[] = $letter;

imagettftext($im, $size, rand(0, 15), $x, $y, $color, $font, $letter);
}


$_SESSION['captcha'] = implode('', $code);

header('Content-type: image/gif');
imagegif($im);
imagedestroy($im);




еще создай папку fonts для шрифтов, клади туда любые biggrin.gif
при подключении не забудь запустить сессию, и прописать условие типа
if($_SESSION['captcha'] !== strtolower($_POST['captcha'])) 
{
print 'код неверный';
}

Спустя 1 час, 5 минут, 10 секунд (8.03.2010 - 16:38) vital написал(а):
Охринеть. Удобная штука=) А кто автор?) Респект ему)

Спустя 3 минуты, 14 секунд (8.03.2010 - 16:41) Lenarfate написал(а):
Цитата
А кто автор?
не знаю, но симпатичная такая каптча biggrin.gif

Спустя 6 дней, 1 час, 19 минут, 41 секунда (14.03.2010 - 18:01) dnk2009 написал(а):
не подскажите в чём дело. в php 5.2.x капча отображаеться.

а в 5.3.x нет

Спустя 17 минут, 50 секунд (14.03.2010 - 18:19) Nikitian написал(а):
Включите ошибки, уберите header('Content-type: image/gif'); и узрите причину неработы. Если неясно, то копипастите ошибки сюда.

Спустя 1 день, 14 часов, 46 минут, 57 секунд (16.03.2010 - 09:06) NoCash написал(а):
а не подскажете как сделать проверку этой капчи с помощью javascript

Спустя 10 минут, 5 секунд (16.03.2010 - 09:16) Nikitian написал(а):
Ajax-запрос к бэкенду, который будет говорить, правильная каптча или нет. Хотя по идее, правильнее будет всё-таки посылать запрос полностью.

Спустя 41 минута, 34 секунды (16.03.2010 - 09:57) NoCash написал(а):
а можно чуточку по подробнее?

Спустя 19 минут (16.03.2010 - 10:16) Nikitian написал(а):
Подробнее тут

Спустя 2 часа, 3 минуты, 37 секунд (16.03.2010 - 12:20) DedMorozzz написал(а):
Цитата (NoCash @ 16.03.2010 - 08:06)
а не подскажете как сделать проверку этой капчи с помощью javascript

а если у меня отключён JS?

Спустя 21 минута, 56 секунд (16.03.2010 - 12:42) maxims написал(а):
правильно DedMorozzz, я бы не стал использовать JS для каких-то ключевых действий на сайте......

Спустя 21 минута, 50 секунд (16.03.2010 - 13:04) NoCash написал(а):
имеется такой код
<script type="text/javascript" language="javascript">
var
req = Create();

function ge(id)
{
return document.getElementById(id);
}

function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'test1.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;
else
ge('ajax').innerHTML = '<img src="prel.gif" />';

}
}

function Pusk()
{
var query;

query ='txt='+encodeURIComponent(ge('myid').value);

Request(query);
}


</script>

ну и на сервере
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
?>
<?php

$txt= isset($_POST['txt'])?$_POST['txt']:NULL;
if ($txt != $_SESSION['code'])
echo 'kod neveren';

?>



вроде все хорошо работает но не так как нужно
подскажите как вывезти окошечко об ошибке что код введен не верно??

Спустя 13 минут, 31 секунда (16.03.2010 - 13:17) jetistyum написал(а):
это называется не подскажите, а напишите мне....

Спустя 16 часов, 15 минут, 1 секунда (17.03.2010 - 05:32) maxims написал(а):
Цитата (NoCash @ 16.03.2010 - 10:04)
вроде все хорошо работает но не так как нужно

как работает то? что выдаёт? как тебе нужно? biggrin.gif

Спустя 1 час, 13 минут, 54 секунды (17.03.2010 - 06:46) Игорь_Vasinsky написал(а):
Цитата
error_reporting(E_ALL & ~E_NOTICE);


штука конечно оч удобная, но зачем использовать во время отладки скрипта?


може так

<?php
session_start();
if(isset($_SESSION['code']) && $_SESSION['code'] == $_POST['txt']){
echo "Правильно";
}
else{
echo "Не правильно";
}
unset($_SESSION['code']);
?>

Спустя 6 часов, 12 минут, 48 секунд (17.03.2010 - 12:59) qpayct написал(а):
сервис "помоги себе сам" - рекомендую wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.