将 reCAPTCHA 与 Perl 搭配使用

重要提示:1.0 版 reCAPTCHA API 不再受支持,请升级到 2.0 版。了解详情

reCAPTCHA Perl 模块提供了一种添加人机识别系统 ,这有助于您阻止漫游器滥用这些内容。该模块将 reCAPTCHA API

要将 reCAPTCHA 与 Perl 结合使用,您可以下载 reCAPTCHA Perl Module(由 Andy Armstrong 贡献)。您需要将此模块安装到 计算机(网络服务器)。此模块依赖于 LWP::UserAgent 模块 和 HTML::Tiny,两者均支持 还需要进行安装。下面是安装 Perl 的一些基本说明 模块

快速入门

注册 API 密钥并下载 reCAPTCHA Perl 模块后,以下是有关 在您的网站上安装 reCAPTCHA。

客户端(如何显示人机识别系统图片)

如果您想使用 Perl 模块显示 reCAPTCHA 微件,则需要将 这行代码位于文件顶部附近,包含表单元素,reCAPTCHA 微件将 显示:

    use Captcha::reCAPTCHA;

然后,您需要创建一个 reCAPTCHA 实例:

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

最后,如需显示 reCAPTCHA widget,您必须将以下代码行 <form>代码中:

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

因此,您的代码可能如下所示:

    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

别忘了将 your_public_key 替换为您的 API 密钥。

服务器端(如何测试用户输入的答案是否正确)

以下概要介绍了如何验证 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";
    }

延伸阅读

  • 自定义外观和风格
  • 提示和准则
  • 问题排查