Importante: não há mais suporte para a versão 1.0 da API reCAPTCHA. Faça upgrade para a versão 2.0. Saiba mais
O módulo reCAPTCHA Perl oferece uma maneira simples de colocar um CAPTCHA no seu site, ajudando a impedir que bots abusem dele. O módulo encapsula a API reCAPTCHA.
Para usar o reCAPTCHA com Perl, faça o download do módulo reCAPTCHA Perl (contribuição de Andy Armstrong). Você precisará instalar esse módulo na sua máquina (servidor da Web). O módulo depende dos módulos LWP::UserAgent e HTML::Tiny, que também precisam ser instalados. Veja algumas instruções básicas sobre como instalar módulos Perl (link em inglês).
Início rápido
Depois de se inscrever para usar suas chaves de API e fazer o download do módulo reCAPTCHA Perl, veja abaixo as instruções básicas para instalar o reCAPTCHA no seu site.
Lado do cliente (como fazer a imagem do CAPTCHA aparecer)
Se você quiser usar o módulo Perl para mostrar o widget reCAPTCHA, insira esta linha perto da parte de cima do arquivo com o elemento de formulário em que o widget reCAPTCHA vai ser exibido:
use Captcha::reCAPTCHA;
Em seguida, crie uma instância do reCAPTCHA:
my $c = Captcha::reCAPTCHA->new;
Por fim, para exibir o widget reCAPTCHA, você precisa colocar a seguinte linha dentro da tag <form>:
print $c->get_html("your_public_key");
Seu código vai ficar assim:
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
Não se esqueça de substituir your_public_key
pelo valor da sua chave de API.
Lado do servidor (como testar se o usuário inseriu a resposta certa)
Confira abaixo o modelo de como verificar a resposta 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"; }