Używanie reCAPTCHA z Perl

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 w prosty sposób pozwala umieścić obraz CAPTCHA w witrynie, aby powstrzymać boty przed jej nadużywaniem. Ten moduł obejmuje Interfejs API reCAPTCHA.

Aby korzystać z reCAPTCHA z Perl, pobierz wersję reCAPTCHA Perl Moduł (utworzony przez Andy'ego Armstronga). Musisz zainstalować ten moduł na swoim na komputerze (serwerze WWW). Moduł korzysta z modułów LWP::UserAgent. i HTML::Tiny, oba który także trzeba zainstalować. Oto kilka podstawowych instrukcji instalowania języka Perl .

Szybki start

Gdy już zarejestrujesz klucze interfejsu API i pobierzesz moduł reCAPTCHA Perl, poniżej znajdziesz podstawowe instrukcje dotyczące instalując reCAPTCHA w swojej witrynie.

Po stronie klienta (jak wyświetlić obraz CAPTCHA)

Jeśli chcesz używać modułu Perl do wyświetlania widżetu reCAPTCHA, musisz wstawić ten wiersz w górnej części pliku z elementem formularza, w którym będzie znajdować się widżet reCAPTCHA wyświetlono:

    use Captcha::reCAPTCHA;

Następnie musisz utworzyć instancję reCAPTCHA:

    my $c = Captcha::reCAPTCHA->new;

Aby wyświetlić widżet reCAPTCHA, musisz umieścić następujący wiersz w sekcji <form> :

    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ć parametru your_public_key wartością swojej klucz interfejsu API.

Po stronie serwera (jak sprawdzić, czy użytkownik wpisał poprawną odpowiedź)

Poniżej znajduje się szkielet sposobu 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";
    }

Dalsza lektura

  • Dostosowywanie wyglądu i stylu
  • Wskazówki i wytyczne
  • Rozwiązywanie problemów