Ważne: interfejs API reCAPTCHA w wersji 1.0 nie jest już obsługiwany. Uaktualnij go do wersji 2.0. Więcej informacji
Moduł reCAPTCHA Perl pozwala w prosty sposób umieścić w witrynie zadanie CAPTCHA, pomagając Ci powstrzymać boty przed jego nadużywaniem. Moduł zawiera interfejs reCAPTCHA API.
Aby używać reCAPTCHA z Perl, możesz pobrać moduł reCAPTCHA Perl (dostarczony przez Andy'ego Armstronga). Musisz go zainstalować na swoim komputerze. Moduł zależy od modułów LWP::UserAgent i HTML::Tiny – oba muszą być zainstalowane. Oto kilka podstawowych instrukcji instalowania modułów Perl.
Szybki start
Po zarejestrowaniu się w kluczach interfejsu API i pobraniu modułu reCAPTCHA Perl poniżej znajdziesz podstawowe instrukcje instalowania reCAPTCHA w swojej witrynie.
Po stronie klienta (jak wyświetlić obraz CAPTCHA)
Jeśli chcesz użyć modułu Perl do wyświetlenia widżetu reCAPTCHA, u góry pliku musisz wstawić ten wiersz z elementem formularza, w którym będzie wyświetlany widżet reCAPTCHA:
use Captcha::reCAPTCHA;
Następnie musisz utworzyć instancję reCAPTCHA:
my $c = Captcha::reCAPTCHA->new;
Aby wyświetlić widżet reCAPTCHA, musisz umieścić w tagu <form> ten wiersz:
print $c->get_html("your_public_key");
Twój kod może więc wyglądać mniej więcej tak:
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
Nie zapomnij zastąpić your_public_key
wartością swojego klucza interfejsu API.
Po stronie serwera (jak sprawdzić, czy użytkownik wpisał poprawną odpowiedź)
Poniżej znajduje się szkielet weryfikacji odpowiedzi 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"; }