استفاده آسان از Google reCaptcha در کد phpجهت جلوگیری از اسپم
1395/08/08

وارد کردن اطلاعات از Excel به مای اس کیو ال با PHP
1395/07/24

بهترین زبان برنامه نویسی که میتوانید در 2015 بيامو
1394/01/02

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


رضا نقی لو 1395/08/08

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

 

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

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

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

 

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

  • Site key
  • Secret key

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

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

<script src='https://www.google.com/recaptcha/api.js'></script>

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

<div class="g-recaptcha" data-sitekey="== Your site Key =="></div>

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

 

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


<html>
  <head>
    <title>Google recapcha demo - Codeforgeek</title>
    <script src='https://www.google.com/recaptcha/api.js'></script>
  </head>
  <body>
    <h1>Google reCAPTHA Demo</h1>
    <form id="comment_form" action="form.php" method="post">
      <input type="email" placeholder="Type your email" size="40"><br><br>
      <textarea name="comment" rows="8" cols="39"></textarea><br><br>
      <input type="submit" name="submit" value="Post comment"><br><br>
      <div class="g-recaptcha" data-sitekey="=== Your site key ==="></div>
    </form>
  </body>
</html>

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


<?php

        $email;$comment;$captcha;
        if(isset($_POST['email'])){
          $email=$_POST['email'];
        }if(isset($_POST['comment'])){
          $email=$_POST['comment'];
        }if(isset($_POST['g-recaptcha-response'])){
          $captcha=$_POST['g-recaptcha-response'];
        }
        if(!$captcha){
          echo '<h2>Please check the the captcha form.</h2>';
          exit;
        }
        $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
        if($response.success==false)
        {
          echo '<h2>You are spammer ! Get the @$%K out</h2>';
        }else
        {
          echo '<h2>Thanks for posting comment.</h2>';
        }
?>

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

 


        $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);

 

امیدوارم از این آموزش استفاده کرده باشید.موفق باشید.

 

منبع:

فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد
درباره نویسنده
admin2
رضا نقی لو
androiddev60@gmail.com
نظرات شما
نظر جدید