Perl で reCAPTCHA を使用する

重要: reCAPTCHA API のバージョン 1.0 のサポートは終了しました。バージョン 2.0 にアップグレードしてください。詳細

reCAPTCHA Perl モジュールを使用すると、簡単に CAPTCHA を配置できます。 bot による悪用を阻止できます。このモジュールは、 reCAPTCHA API

Perl で reCAPTCHA を使用するには、reCAPTCHA Perl を Module(Andy Armstrong 寄稿)。このモジュールは、ローカルマシン上で 構成されます。このモジュールは、LWP::UserAgent モジュールに依存します。 と HTML::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";
    }

関連情報

  • デザインのカスタマイズ
  • ヒントとガイドライン
  • トラブルシューティング