重要提示:reCAPTCHA API 1.0 版已不再受支持,请升级到 2.0 版。了解详情
reCAPTCHA Perl 模块提供了一种在网站上放置人机识别系统的简单方法,可帮助您阻止漫游器滥用该功能。该模块封装了 reCAPTCHA API。
如需将 reCAPTCHA 与 Perl 搭配使用,您可以下载 reCAPTCHA Perl 模块(由 Andy Armstrong 提供)。您需要在机器(网络服务器)上安装此模块。该模块依赖于模块 LWP::UserAgent 和 HTML::Tiny,这两个模块也需要安装。以下是一些安装 Perl 模块的基本说明。
快速入门
注册 API 密钥并下载 reCAPTCHA Perl 模块后,以下是在网站上安装 reCAPTCHA 的基本说明。
客户端(如何显示人机识别系统图片)
如果您想要使用 Perl 模块来显示 reCAPTCHA widget,则需要在包含表单元素(将显示 reCAPTCHA widget)的文件顶部附近插入下面这行代码:
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"; }