Google Recaptcha V2 Kullanımı

Google Recaptcha V2 Kullanımı ile ilgili makale yazacağız. Uzun zamandır sitemize içerik girmiyorduk böylelikle bir adım atmış olduk. Google Recaptcha’yı kullanım amacı bildiğiniz üzere form post bölümlerinde spam verilerden kurtulmaktır.

Öncelikli olarak Google Recaptcha’ya sitenizi ekleyin. Size altta bağlantı bırakıyorum, recaptcha panelinden yeni site ekleyin ve “ReCaptcha V2” daha sonra “onay kutusunu (checkbox)” seçiyorsunuz. Örnek adım aşağıdadır.

Seçimimizden sonra bize 2 adet key veriyor. Bir tanesi “site key” bir diğeri ise “secret key” dir. Bunlar bizim için gerekecektir.

Google Recaptcha V2 Kullanımı için 2 aşamalı bir yolumuz. Gelin sırasıyla yapalım. Önce örnek bir kullanım yapalım.

<html>
  <head>
    <title>Örnek Form Kullanımı</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="post.php" method="POST">

      <input type="text" name="eposta">
      <div class="g-recaptcha" data-sitekey="your_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

Bu kısımda form’un içinde bir div açıyoruz classımızı şu şekilde tanımıyoruz: class=”g-recaptcha” ve data-sitekey=”your_site_key” yazan kısma ise Google’ın bize verdiği Site Key’i yazıyoruz.

Post işlemi Jquery Ajax ile yapmak isterseniz Jquery Ajax Form Post Uygulaması başlıklı makalemizi inceleyebilirsiniz.

Bu şekilde doğrulamayı Google recaptcha api’sine sorgulatmış olduk, buradan bize bir callback dönüyor. Buda bot doğrulaması sonucunda kişinin botmu yoksa gerçek bir kişimi olduğunun sonucudur.

Bunu ise PHP ile verileri çekip kontrol edeceğiz, kişi gerçek biriyse işleme devam edecek, eğer yok ise bu durumda hata döndereceğiz.

post.php dosyası oluşturup içini açıyoruz.

<?php
/* Google ReCaptcha Verification */
$url = 'https://www.google.com/recaptcha/api/siteverify';
$privatekey = "YOUR_PRIVATE_KEY";
$response = file_get_contents($url."?secret=".$privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);
$data = json_decode($response);

if (isset($data->success) AND $data->success==true)
{
   // 1 numaralı kod bloğu (İşlem olumlu)
}
else
{
     // 2 numaralı kod bloğu (İşlem başarısız)
     header("location: index");
}
    

Burada $privatekey değişkeninin değerini Google’ın bize verdiği “Secret Keyi” giriyoruz. Eğer kişi doğrulamadan geçerse yukarıda ki “1” numaralı kod bloğu çalışacak, geçemez ise “2” numaralı kod bloğu çalışacaktır.

İşlemlerimiz bu kadar basit. Şu an kullanıma hazırsınız. Anlamadığınız bir yer olursa yorum yapmaktan çekinmeyin.

Translate »