Importante: la versione 1.0 dell'API reCAPTCHA non è più supportata, esegui l'upgrade alla versione 2.0. Scopri di più
Il modulo reCAPTCHA Perl fornisce un modo semplice per inserire un CAPTCHA sul tuo sito web, aiutandoti a impedire ai bot di utilizzarlo in modo illecito. Il modulo esegue il wrapping dell'API reCAPTCHA.
Per utilizzare reCAPTCHA con Perl, puoi scaricare il modulo Perl reCAPTCHA (di Andy Armstrong). Dovrai installare questo modulo sulla tua macchina (server web). Il modulo dipende dai moduli LWP::UserAgent e HTML::Tiny, che dovranno essere anche installati. Ecco alcune istruzioni di base sull'installazione dei moduli Perl.
Avvio rapido
Dopo aver effettuato la registrazione per le chiavi API e scaricato il modulo reCAPTCHA Perl, di seguito sono riportate le istruzioni di base per installare reCAPTCHA sul tuo sito.
Lato client (come visualizzare l'immagine del CAPTCHA)
Se vuoi utilizzare il modulo Perl per visualizzare il widget reCAPTCHA, devi inserire questa riga nella parte superiore del file con l'elemento modulo in cui verrà visualizzato il widget reCAPTCHA:
use Captcha::reCAPTCHA;
Quindi, devi creare un'istanza di reCAPTCHA:
my $c = Captcha::reCAPTCHA->new;
Infine, per visualizzare il widget reCAPTCHA, devi inserire la seguente riga all'interno del tag <form>:
print $c->get_html("your_public_key");
Di conseguenza, il codice potrebbe avere il seguente aspetto:
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
Non dimenticare di sostituire your_public_key
con il valore della tua
chiave API.
Lato server (come verificare se l'utente ha inserito la risposta corretta)
Di seguito è riportata una bozza di come verificare la risposta 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"; }