Perl के साथ reCAPTCHA का इस्तेमाल करना

अहम जानकारी: reCAPTCHA API का 1.0 वर्शन अब काम नहीं करता. कृपया इसे 2.0 वर्शन पर अपग्रेड करें. ज़्यादा जानें

reCAPTCHA Perl मॉड्यूल आपकी वेबसाइट पर कैप्चा रखने का एक आसान तरीका उपलब्ध कराता है, जिससे बॉट को इसका गलत इस्तेमाल करने से रोकने में मदद मिलती है. इस मॉड्यूल में, re कैप्चा API को रैप किया जाता है.

Perl के साथ reCAPTCHA का इस्तेमाल करने के लिए, आप recaptcha Perl मॉड्यूल डाउनलोड कर सकते हैं (इसमें एंडी आर्मस्ट्रॉन्ग ने भी योगदान दिया है). आपको यह मॉड्यूल अपनी मशीन (वेब सर्वर) पर इंस्टॉल करना होगा. यह मॉड्यूल, LWP::UserAgent और HTML::Tiny मॉड्यूल पर निर्भर करता है. इन दोनों को भी इंस्टॉल करना होगा. यहां Perl मॉड्यूल इंस्टॉल करने के बारे में कुछ बुनियादी निर्देश दिए गए हैं.

क्विक स्टार्ट

अपनी एपीआई कुंजियों के लिए साइन अप करने और reCAPTCHA Perl मॉड्यूल को डाउनलोड करने के बाद, अपनी साइट पर reCAPTCHA इंस्टॉल करने के कुछ बुनियादी निर्देश नीचे दिए गए हैं.

क्लाइंट साइड (कैप्चा इमेज दिखाने का तरीका)

अगर आपको reCAPTCHA विजेट दिखाने के लिए Perl मॉड्यूल का इस्तेमाल करना है, तो आपको यह लाइन फ़ाइल के सबसे ऊपर उस फ़ॉर्म एलिमेंट के साथ डालनी होगी जहां 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 को अपनी एपीआई कुंजी की वैल्यू से बदलना न भूलें.

सर्वर साइड (यह कैसे पता करें कि उपयोगकर्ता ने सही जवाब दिया है या नहीं)

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

इसके बारे में और पढ़ें

  • रंग-रूप को पसंद के मुताबिक बनाना
  • सलाह और दिशा-निर्देश
  • किसी समस्या को हल करना