Яндекс.Капча /Yandex.Captcha/

PHP

Вот сделал простенький пример капчи на основе API Яндекс.Чистый Веб, может кому пригодится :)

<?php
#####
# Яндекс.Капча /Yandex.Captcha/
# основано на API Яндекс.Чистый Веб /api.yandex.ru/cleanweb/
#
# Автора ищите на сайте - zloy.org
# Сервис регистрации доменов /nserver.ru/
#
# Возможные типы капчи (type)
# std — цифры, русскоязычный логотип;
# estd — цифры, англоязычный логотип;
# lite — простые для чтения цифры, русскоязычный логотип;
# elite — простые для чтения цифры, англоязычный логотип;
# rus — русские буквы, русскоязычный логотип;
# latl — латинские строчные буквы , русскоязычный логотип;
# elatl — латинские строчные буквы, англоязычный логотип;
# latu — латинские прописные буквы, русскоязычный логотип;
# elatu — латинские прописные буквы, англоязычный логотип;
# latm — латинские буквы смешанного регистра, русскоязычный логотип;
# elatm — латинские буквы смешанного регистра, англоязычный логотип.
#
#####
session_start();

$api_key = '-здесь ваш апи ключ-'; # получаем на API Яндекс.Чистый Веб /api.yandex.ru/cleanweb/
$url_api = 'http://cleanweb-api.yandex.ru/1.0/';

if ($_REQUEST['captcha_value']!="") goto check;

$ch = curl_init();     //Получаем CAPTCHA
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_URL, $url_api. 'get-captcha?' . 'key=' . urlencode($api_key) . '&id=null&type=estd');
$response = new SimpleXMLElement(curl_exec($ch));
$captcha_url=$response->url;
$captcha_id=(string) $response->captcha;
curl_close($ch);

$_SESSION['captcha'] = $captcha_id;
echo "<img src=\"".$captcha_url."\">";
echo "<form action='index.php'><input type='text' name='captcha_value'><input type='submit' value='go'></form>";

goto zzz;

check:

$captcha_value=$_REQUEST['captcha_value'];
$captcha=$_SESSION['captcha'];

// Проверка CAPTCHA
$ch = curl_init();     //Получаем CAPTCHA
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_URL, $url_api. 'check-captcha?' . 'key=' . urlencode($api_key) . '&id=null&captcha='.$captcha.'&value='.$captcha_value.'');
$response = new SimpleXMLElement(curl_exec($ch));
if (isset($response->ok)) echo "yes";
else echo "no";
curl_close($ch);

zzz:
exit;
?>

0 комментариев

Оставить комментарий