استخدام reCAPTCHA مع لغة Perl

ملاحظة: لم يعُد الإصدار 1.0 من reCAPTCHA API متاحًا، لذا يُرجى الترقية إلى الإصدار 2.0. مزيد من المعلومات

توفّر وحدة reCAPTCHA Perl طريقة بسيطة لإجراء اختبار CAPTCHA على موقعك الإلكتروني، ما يساعدك على منع برامج التتبّع من إساءة استخدامه. تشمل الوحدة واجهة برمجة تطبيقات ReCAPTCHA.

لاستخدام reCAPTCHA مع Perl، يمكنك تنزيل وحدة ReCAPTCHA Perl (التي ساهم بها "آندي أرمسترونغ"). ستحتاج إلى تثبيت هذه الوحدة على جهازك (خادم الويب). تعتمد الوحدة على الوحدتين LWP::UserAgent وHTML::Tiny، ويجب تثبيت كلتاهما. في ما يلي بعض التعليمات الأساسية حول تثبيت وحدات Perl.

البدء بسرعة

بعد الاشتراك للحصول على مفاتيح واجهة برمجة التطبيقات وتنزيل وحدة 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 بقيمة مفتاح واجهة برمجة التطبيقات.

من جهة الخادم (كيفية اختبار ما إذا كان المستخدم قد أدخل الإجابة الصحيحة)

في ما يلي نظرة عامة على كيفية التحقق من إجابة 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";
    }

قراءات إضافية

  • تخصيص الشكل والمظهر
  • نصائح وإرشادات
  • تحديد المشاكل وحلّها