Важно : версия 1.0 API reCAPTCHA больше не поддерживается, обновите ее до версии 2.0. Узнать больше
Perl-модуль reCAPTCHA предоставляет простой способ разместить CAPTCHA на вашем веб-сайте, помогая вам не дать ботам злоупотреблять ею. Модуль оборачивает API reCAPTCHA .
Чтобы использовать reCAPTCHA с Perl, вы можете загрузить Perl-модуль reCAPTCHA (предоставленный Энди Армстронгом). Вам необходимо будет установить этот модуль на свой компьютер (веб-сервер). Модуль зависит от модулей LWP::UserAgent и HTML::Tiny , оба из которых также необходимо установить. Вот несколько основных инструкций по установке модулей Perl .
Быстрый старт
После того как вы подписались на получение ключей API и загрузили Perl-модуль reCAPTCHA, ниже приведены основные инструкции по установке reCAPTCHA на ваш сайт.
Клиентская часть (Как сделать так, чтобы изображение CAPTCHA отображалось)
Если вы хотите использовать модуль Perl для отображения виджета reCAPTCHA, вам нужно будет вставить эту строку в начало файла с элементом формы, где будет отображаться виджет reCAPTCHA:
use Captcha::reCAPTCHA;
Затем вам необходимо создать экземпляр reCAPTCHA:
my $c = Captcha::reCAPTCHA->new;
Наконец, чтобы отобразить виджет reCAPTCHA, вы должны поместить следующую строку внутри тега <form>:
print $c->get_html("your_public_key");
Итак, ваш код может выглядеть примерно так:
use Captcha::reCAPTCHA; my $c = Captcha::reCAPTCHA->new; print <<EOT; <html> <body> <form action="" method="post"> EOT print $c->get_html("your_public_key"); print <<EOT; <input type="submit" value="submit" /> </form> </body> </html> EOT
Не забудьте заменить your_public_key
значением вашего ключа API.
Серверная часть (Как проверить, ввел ли пользователь правильный ответ)
Ниже приведена схема проверки ответа reCAPTCHA:
use Captcha::reCAPTCHA; my $c = Captcha::reCAPTCHA->new; my $challenge = param 'recaptcha_challenge_field'; my $response = param 'recaptcha_response_field'; # Verify submission my $result = $c->check_answer( "your_private_key", $ENV{'REMOTE_ADDR'}, $challenge, $response ); if ( $result->{is_valid} ) { print "Yes!"; } else { # Error print "No"; }