將 reCAPTCHA 與 Perl 搭配使用

重要事項:系統已不再支援 reCAPTCHA API 1.0 版,請升級至 2.0 版。瞭解詳情

reCAPTCHA Perl 模組提供簡單的方法讓您在網站上設置 CAPTCHA,防止機器人濫用此模組。這個模組會納入 reCAPTCHA API

如要將 reCAPTCHA 與 Perl 搭配使用,您可以下載 reCAPTCHA Perl 模組 (由 Andy Armstrong 提供)。您必須在電腦上安裝這個模組 (網路伺服器)。該模組取決於 LWP::UserAgentHTML::Tiny 模組,兩者也需要安裝這些模組。請參閱安裝 Perl 模組的一些基本操作說明

快速啟動

註冊 API 金鑰並下載 reCAPTCHA Perl 模組後,請按照下列基本操作說明在網站上安裝 reCAPTCHA。

用戶端 (如何顯示人機驗證 (Captcha) 圖片)

如要使用 Perl 模組顯示 reCAPTCHA 小工具,您必須在檔案頂端附近插入這行程式碼,然後加入會顯示 reCAPTCHA 小工具的表單元素:

    use Captcha::reCAPTCHA;

接著,您必須建立 reCAPTCHA 執行個體:

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

最後,如要顯示 reCAPTCHA 小工具,您必須將下列程式碼新增到 <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";
    }

延伸閱讀

  • 自訂外觀和風格
  • 提示和指南
  • 疑難排解