عیب یابی

مهم : نسخه 1.0 reCAPTCHA API دیگر پشتیبانی نمی‌شود، لطفاً به نسخه 2.0 ارتقا دهید. بیشتر بدانید


من نمی توانم مشخص کنم که کجا باید reCAPTCHA را اضافه کنم

این توصیه برای همه کسانی که reCAPTCHA را ادغام می کنند - صرف نظر از زبانشان، صدق می کند.

ابتدا باید دو نقطه داغ را در کد خود شناسایی کنید. این مکان‌هایی هستند که تماس‌های reCAPTCHA را اضافه می‌کنید.

  • نمایش reCAPTCHA: اولین نقطه داغ کدی است که فرم را تولید می کند. امیدواریم که یافتن آن به اندازه کافی آسان باشد (با جستجوی یک تگ <form> در html خود) و بتوانید CAPTCHA را در فرم خود نمایش دهید.

  • reCAPTCHA را بررسی کنید: دومین نقطه داغ نقطه ای است که به نظر می رسد برای افراد مشکل ایجاد می کند. شما باید کدی را که ارسال فرم را مدیریت می کند شناسایی کنید -- این کدی است که وقتی کاربر روی ارسال کلیک می کند اجرا می شود . تعمیم در مورد اینکه این کد چگونه به نظر می رسد دشوار است، اما در اینجا چند سرنخ وجود دارد که ممکن است به شما کمک کند:

    • اگر فرم شما می تواند پیام خطا را نمایش دهد، به عنوان مثال اگر یک قسمت مورد نیاز خالی است، به دنبال کدی باشید که آن پیام خطا را ایجاد می کند.
    • اگر فرم شما اطلاعاتی را در پایگاه داده قرار می دهد به دنبال کدی باشید که SQL INSERT را انجام می دهد.
    • اگر فرم شما نامه می فرستد، کدی را جستجو کنید که این کار را انجام می دهد.

    فرم قبلاً اعتبارسنجی شده است

    اگر فرم شما از قبل منطق اعتبارسنجی داشته باشد (یعنی ورودی نامعتبر کاربر را با نمایش یک پیام به جای انجام هر کاری که به طور معمول انجام می دهد، مدیریت می کند) زندگی آسان تر خواهد بود. اگر اینطور است و می‌توانید کدی را پیدا کنید که این کار را انجام می‌دهد، تقریباً در خانه آزاد هستید. اگر فرم می تواند پیام خطا را نمایش دهد، متن پیام خطا را در کد جستجو کنید و مطمئن باشید که نزدیک هستید. هنگامی که کد اعتبار سنجی را پیدا کردید، باید علاوه بر بررسی های دیگری که وجود دارد (آدرس ایمیل خالی است؟ سن خیلی کم است؟ و غیره) یک تماس به تابع check_answer اضافه کنید.

    فرم اعتبار سنجی ندارد

    اگر در حال حاضر هیچ منطق اعتبارسنجی برای فرم شما وجود ندارد - اگر کلیک بر روی ارسال همیشه موفق باشد - مشکل پیچیده تری دارید. در این صورت باید کد اعتبارسنجی reCAPTCHA را درست قبل از اینکه کد مدیریت فرم موجود هر کاری را که کاربر ارسال می کند انجام دهد، اضافه کنید. شما همچنین باید نحوه نمایش مجدد فرم را بیابید تا کاربر یک بار دیگر برای کپچا تلاش کند. متأسفانه هیچ پاسخ سهامی برای نحوه انجام این کار وجود ندارد. این کاملاً به ساختار کدی که قبلاً دارید بستگی دارد. اگر کد موجود خیلی پیچیده نیست، ممکن است شانس داشته باشید که آن را در انجمن توسعه دهندگان reCAPTCHA پست کنید و از شما راهنمایی بخواهید. (اگر در آنجا پست می‌کنید، حتماً اطلاعات کافی درج کنید تا دیگران به شما کمک کنند؛ صرفاً گفتن «کد من کار نمی‌کند» معمولاً نتایج خوبی به همراه ندارد.)

  • کار نمیکند! کمک!

    قبل از انجام هر کار دیگری مطمئن شوید که از کلیدهای صحیح استفاده می کنید. آیا کلیدهای عمومی و خصوصی شما تعویض شده است؟ آیا یادتان رفته است که کلید خصوصی را در کنترل کننده فرم و همچنین قرار دادن کلید عمومی در فرم قرار دهید؟

    توجه داشته باشید که Mailhide از کلیدهای متفاوت از reCAPTCHA مبتنی بر فرم اصلی استفاده می کند.

    مطمئن شوید که فرم شما از روش POST استفاده می کند، یا متغیرهای کنترل کننده فرم reCAPTCHA را به جای POST به GET تغییر دهید.

    اگر reCAPTCHA کار می کرد و ناگهان شروع به دریافت "خطای داخلی رخ داد" کردید، آیا اخیراً حساب Google را که برای ثبت نام برای کلیدها استفاده می کردید حذف کرده اید؟ اگر چنین است، برای کلیدهای جدید با یک حساب فعال ثبت نام کنید و آن ها را امتحان کنید.

    reCAPTCHA پذیرفتن کلمات نادرست است

    انسان ها اشتباه می کنند و ما این را درک می کنیم. در reCAPTCHA ما از یک موتور تجزیه و تحلیل ریسک پیشرفته برای تعیین اینکه آیا درخواست دریافتی از یک انسان است یا نه استفاده می کنیم. وقتی از انسان بودن کاربران بسیار اطمینان داریم، به آنها اجازه می دهیم اشتباهات کوچکی مرتکب شوند.

    نه، منظور من *کلا* کلمات نادرست است

    اگر reCAPTCHA هر ورودی را می پذیرد، احتمالاً به درستی پاسخ reCAPTCHA را با سرورهای API تأیید نمی کنید. یعنی، یا: (1) شما به درستی https://www.google.com/recaptcha/api/verify (یا تابع معادل اگر از یک افزونه استفاده می کنید، مانند recaptcha_check_answer در PHP) تماس نمی گیرید، یا ( 2) با توجه به پاسخ سرورهای ما اقدام مناسبی انجام نمی دهید. لطفاً دستورالعمل‌های خاصی را که برای نصب reCAPTCHA استفاده کردید (خواه از طریق یک افزونه باشد یا نه) مشاهده کنید تا نحوه بررسی اینکه آیا کاربر پاسخ را درست وارد کرده است یا خیر.

    کاربران من شروع به دریافت کپچای یک کلمه ای می کنند

    reCAPTCHA همیشه دو کلمه نیست. این آزمایشی است برای تشخیص انسان و روبات از یکدیگر. در مواردی که ما اطمینان زیادی به انسان بودن شما داریم، یک کپچای بسیار ساده تر به شما ارائه می دهیم (نمونه زیر). سیستم ما برای تصمیم گیری در مورد قبولی یا عدم موفقیت در آزمون، به جای راه حل به تنهایی، به کل تعامل شما با reCAPTCHA - قبل، در حین و بعد از حل آن - متکی است.

    کپچای آسان

    اگر در مورد امنیت این کپچاهای آسان کنجکاو هستید، لطفاً به وبلاگ ما مراجعه کنید: http://googleonlinesecurity.blogspot.com/2013/10/recaptcha-just-got-easier-but-only-if.html