Menggunakan reCAPTCHA dengan Perl

Penting: reCAPTCHA API versi 1.0 tidak lagi didukung, upgrade ke Versi 2.0. Pelajari lebih lanjut

Modul reCAPTCHA Perl menyediakan cara mudah untuk menempatkan CAPTCHA di situs Anda, sehingga Anda dapat mencegah bot menyalahgunakannya. Modul ini menggabungkan reCAPTCHA API.

Untuk menggunakan reCAPTCHA dengan Perl, Anda dapat mendownload Modul Perl reCAPTCHA (dikontribusikan oleh Andy Armstrong). Anda perlu menginstal modul ini di komputer Anda (server web). Modul ini bergantung pada modul LWP::UserAgent dan HTML::Tiny, yang keduanya juga perlu diinstal. Berikut adalah beberapa petunjuk dasar tentang cara menginstal modul Perl.

Mulai Cepat

Setelah mendaftar kunci API dan mendownload modul reCAPTCHA Perl, berikut adalah petunjuk dasar untuk menginstal reCAPTCHA di situs Anda.

Sisi Klien (Cara memunculkan gambar CAPTCHA)

Jika ingin menggunakan modul Perl untuk menampilkan widget reCAPTCHA, Anda harus menyisipkan baris ini di dekat bagian atas file dengan elemen formulir tempat widget reCAPTCHA akan ditampilkan:

    use Captcha::reCAPTCHA;

Kemudian, Anda perlu membuat instance reCAPTCHA:

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

Terakhir, untuk menampilkan widget reCAPTCHA, Anda harus menempatkan baris berikut di dalam tag <form>:

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

Jadi, kode Anda mungkin terlihat seperti ini:

    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

Jangan lupa untuk mengganti your_public_key dengan nilai kunci API Anda.

Sisi Server (Cara menguji apakah pengguna memasukkan jawaban yang benar)

Di bawah ini adalah kerangka cara memverifikasi jawaban 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";
    }

Bacaan Lebih Lanjut

  • Menyesuaikan Tampilan dan Nuansa
  • Tips dan Panduan
  • Pemecahan masalah