reCAPTCHA'yı Perl ile kullanma

Önemli: reCAPTCHA API'nin 1.0 sürümü artık desteklenmiyor, lütfen 2.0 sürümüne yükseltin. Daha fazla bilgi

reCAPTCHA Perl Modülü, web sitenize CAPTCHA yerleştirmek için basit bir yöntem sunarak botların sitenizi kötüye kullanmasını önlemenize yardımcı olur. Modül, reCAPTCHA API'yi sarmalar.

reCAPTCHA'yı Perl ile kullanmak için reCAPTCHA Perl Modülü'nü (Andy Armstrong'un desteğiyle) indirebilirsiniz. Bu modülü makinenize (web sunucusu) yüklemeniz gerekir. Modül, LWP::UserAgent ve HTML::Tiny modüllerine bağlıdır. Her ikisinin de yüklenmesi gerekir. Perl modüllerini yüklemeyle ilgili bazı temel talimatları burada bulabilirsiniz.

Hızlı Başlangıç Kılavuzu

API anahtarlarınız için kaydolup reCAPTCHA Perl modülünü indirdikten sonra, reCAPTCHA'yı sitenize yüklemek için gerekli temel talimatları aşağıda bulabilirsiniz.

İstemci Tarafı (CAPTCHA resminin görünmesini sağlama)

reCAPTCHA widget'ını görüntülemek için Perl modülünü kullanmak isterseniz reCAPTCHA widget'ının görüntüleneceği form öğesini içeren dosyanın üst kısmına bu satırı eklemeniz gerekir:

    use Captcha::reCAPTCHA;

Ardından, bir reCAPTCHA örneği oluşturmanız gerekir:

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

Son olarak, reCAPTCHA widget'ını görüntülemek için aşağıdaki satırı <form> etiketinin içine yerleştirmeniz gerekir:

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

Bu durumda, kodunuz aşağıdaki gibi görünebilir:

    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 değerini API anahtarınızın değeriyle değiştirmeyi unutmayın.

Sunucu Tarafı (Kullanıcının doğru yanıtı girip girmediğini test etme)

reCAPTCHA yanıtının nasıl doğrulanacağına dair bir taslak aşağıda verilmiştir:

    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";
    }

Ek Okumalar

  • Görünüm ve Tarzı Özelleştirme
  • İpuçları ve Kurallar
  • Sorun giderme