การใช้ reCAPTCHA กับ Perl

สำคัญ: ระบบไม่รองรับ reCAPTCHA API เวอร์ชัน 1.0 อีกต่อไปแล้ว โปรดอัปเกรดเป็นเวอร์ชัน 2.0 ดูข้อมูลเพิ่มเติม

โมดูล reCAPTCHA Perl ระบุวิธีง่ายๆ ในการวาง CAPTCHA ลงในเว็บไซต์ ซึ่งช่วยป้องกันบ็อตไม่ให้ใช้ในทางที่ผิด โมดูลจะประกอบด้วย reCAPTCHA API

หากต้องการใช้ reCAPTCHA กับ Perl คุณจะดาวน์โหลด reCAPTCHA Perl Module (จัดทำโดย Andy Armstrong) คุณจะต้องติดตั้งโมดูลนี้บนเครื่อง ของคุณ (เว็บเซิร์ฟเวอร์) โมดูลนี้จะขึ้นอยู่กับโมดูล LWP::UserAgent และ HTML::Tiny ซึ่งจะต้องติดตั้งทั้ง 2 โมดูลด้วย โปรดดูวิธีการติดตั้งโมดูล 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";
    }

อ่านเพิ่มเติม

  • การปรับแต่งรูปลักษณ์และความรู้สึก
  • เคล็ดลับและหลักเกณฑ์
  • การแก้ปัญหา