Ajax, PHP, مديريت سايت, امنيت

آموزش استفاده آسان از Google reCaptcha در کد PHP جهت جلوگیری از اسپم

تبلیغات
کانال تلگرام فتولیا
4 سوالی شهرداری

گوگل جدیدا سرویس تشخیص اسپمر های خود یا همان Google reCaptcha قدیمی را نونوار کرده است و دیگر از کدهای درهم و پیچ خورده و ناخوانا خبری نیست . فقط کافی است یک تیک بزنید و قضیه تمام است . در این پست می خواهیم به شما بگوییم که چگونه می توانید این سرویس جذاب گوگل را در برنامه خود استفاده کنید .

hero-recaptcha-demo

ثبت وبسایت و دریافت Secret Code

اولین چیزی که نیاز دارید این است که سایت خود را در Google reCaptcha به ثبت برسانید .برای این کار به این آدرس مراجعه کنید.

به حساب جیمیل تان وارد شوید و سپس فرم زیر را تکمیل نمایید

capcha1

بعد از تکمیل و ارسال فرم بالا گوگل دو مورد مهم را برای شما نشان می دهد :

  • Site key
  • Secret key

قرار دادن reCaptcha در سایت شما

برای اینکه این سرویس در سایت شما فعال شود باید هم در سمت کاربر و هم در سمت سرور تغییراتی ایجاد کنید . در سمت کاربر فایل HTML را باز کرده و کد زیر را قبل از تگ پایانی <head> قرار دهید :

و برای اینکه ویجت سرویس مربوطه در داخل فرم نمایش یابد باید کد زیر را در فرم قرار دهید :

هنگامی که فرم ارسال می شود یک مقدار با نام “g-recaptcha-response” به سمت سرور ارسال می گردد که می توانید از آن برای تشخیص اینکه کاربر تیک کپچا را زده است یا خیر استفاده کنید .

ایجاد یک فرم ارسال نظر با استفاده از reCaptcha

این کدها فرم زیر را تولید می کنند:

Screenshot-from-2014-12-05-103646

در سمت سرویس دهنده از زبان PHP استفاده می کنیم و داده هایی را که توسط فرم ارسال شده اند و در داخل متغیر سراسری $_POST هستند را چک می کنیم

همانطور که می بینید در کد بالا اطلاعات مربوطه را به آدرس سرویس recaptcha ارسال می کنیم و اطلاعات دریافتی از گوگل را که به صورت json هستند چک می کنیم تا مطمئن شویم کاربر اسپمر نیست

 

منبع

15 Comments

    1. سلام
      action فرم هر فایلی باشه باید داخل همون فایل قرار بدیم . مثلا اگه اکشن فرم اینطوری هست : action="form.php" باید داخل فایل form.php قرار بدید

  1. کد هارو قرار دادم ولی چنتا مشکل دارم
    ۱) صفحه اول سایت من شده همون فرم کپتچا http://www.aryabux.ir
    ۲) میخوام کد تو صفحه ثبت نام و ورود کاربران نمایش داده بشه چیکار کنم؟
    ۳) تو سایت گوگل کپتچا مرحه دومی هم هست (server side integration)
    و شما فقط تا مرحله اول گفتید

  2. و برای اینکه ویجت سرویس مربوطه در داخل فرم نمایش یابد باید کد زیر را در فرم قرار دهید :
    برای فرم ورود به وردپرس این کد رو کجا قرار بدیم؟

  3. سلام ممنون از راهنمایی و آموزشه خوبتون ولی من نمیدونم html کجاست و از کجا باید دستکاریش کنم
    برای اینکه این سرویس در سایت شما فعال شود باید هم در سمت کاربر و هم در سمت سرور تغییراتی ایجاد کنید . در سمت کاربر فایل HTML را باز کرده و کد زیر را قبل از تگ پایانی قرار دهید :
    اینو به من یاد بدین خیلی ساده صحبت کنید.
    سایت من وردپرسی هست و همش php داره من head رو نمیدونم از کجا پیدا کنم اصلا html رواز کجای ورد پرس میشه پیدا کرد؟
    ممنون از زحماتتون

  4. سلام ، چرا من در خط ۱۵ فرم خطا دریافت میکنم !!!!!

    Warning: file_get_contents(https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=03AHJ_Vuv1aUu2xUAWKeBfHkHhLi8d-xmxTGMzfivlZ9Ggtx-NhRpQDCpMui6aQ05Jmp3BxowEPhNVGjWcp1lADdJ2yitf8OiTMzU5JJ8wgYP26NsVKC7kZnZ1clTMfNaDyZUzvvU-Oz1sGKRNflr8CZHdzwS2ShuscYpfg4KzJBenfcL5l0wIqV6-PWkdwhA6ZSZDqSkydQl5DUrtWLzkb0qe4KxKP90XAJYJNxYnZJDLtr__c9PXozbmSHhuGVniqmpG9MNtgeR0AcGo-3CE2-evwH4r78h2ljwndxHMheS6HbB9Znn95UH-9GK1viAZkOQ5mSWbORGwOGnSoVs3TMF1iHrKL2FWe0sYRqsv8BeXBbMvMUfXEDP2R8-fQOMUTG8QQYydr5aOw2QL4vVWZEbjheMyxOvB1d2Ka0eSea4Q6InQ5D6VMYHeZaSfLXawRBqq-CkolHEnxxdq_w5xwipDdgA82UWz-Hn1DGLFzzGEcxK7afsjrcf14fiTEeCu5VOue6fD7lLgAnHzAazVYwLhVvbyCdDvWQixHXUY8SvfD1kQlSeqQLYbAeDJYfY7coMq5OFuvnvlfNxl-SnoaSPrE4w980GrQ9KbwjdZDVyWQ8SUwus8u12qrKxa_fYWsicKXADWfhR-4hz1-hdkW9rFJ9GusWdiNVzxiDg1vnIuguubRmxglclIdcztT-iIjbKMe1NUzAX_&remoteip=::1): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in C:\xampp\htdocs\test\form.php on line 14

    Notice: Use of undefined constant success – assumed ‘success’ in C:\xampp\htdocs\test\form.php on line 15
    Thanks for posting comment..

    اینم کامنتی که دریافت میکنم .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آخرین مقالات فتولیا در ایمیل شما

در خبرنامه ما عضو شوید و آخرین مطالب و مقالات آموزشی را اول شما دریافت کنید