Como usar o reCAPTCHA com Perl

Importante: a versão 1.0 da API reCAPTCHA não é mais compatível. 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, o que ajuda você a impedir que os bots abusem dele. O módulo envolve os API reCAPTCHA.

Para usar o reCAPTCHA com Perl, faça o download do reCAPTCHA Perl Module (contribuição de Andy Armstrong). Você precisará instalar esse módulo máquina virtual (servidor da Web). O módulo depende dos módulos LWP::UserAgent e HTML::Tiny, ambos que também precisará ser instalado. Aqui estão algumas instruções básicas sobre como instalar o Perl módulos.

Início rápido

Depois de se inscrever para suas chaves de API e fazer o download do módulo reCAPTCHA Perl, veja abaixo as instruções básicas para e instalar o reCAPTCHA no seu site.

Lado do cliente (como fazer a imagem CAPTCHA aparecer)

Se quiser usar o módulo Perl para exibir o widget reCAPTCHA, insira linha na parte superior do arquivo, com o elemento do formulário onde o widget reCAPTCHA estará exibido:

    use Captcha::reCAPTCHA;

Em seguida, você precisa criar uma instância do reCAPTCHA:

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

Por fim, para exibir o widget reCAPTCHA, coloque a seguinte linha dentro do <form> :

    print $c->get_html("your_public_key");

Sendo assim, seu código será parecido com este:

    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

Substitua your_public_key pelo valor da Chave de API.

No servidor (como testar se o usuário inseriu a resposta certa)

Veja abaixo como verificar a resposta do 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";
    }

Leitura adicional

  • Personalizar a aparência
  • Dicas e diretrizes
  • Solução de problemas