Codeigniter 3 Google reCaptcha Kullanımı

PHP Codeigniter

Merhaba değerli okurlar, bu yazımızda sizinle google recaptcha'yı codeigniter 3 framework'une nasıl entegre edebileceğinizi adım adım göstereceğim.

Günümüzde proje güvenliği, java, php, .net vb. üzerinde de olsa her proje için daha önemlidir. Projeniz'de veri gönderme alanları varsa, çok sayıda curl isteği ile hack'e dönüşebilir. Tam o anda google captcha kullanıyorsanız, POST & GET isteğini yapan botları önlemek için en iyi güvenliği sağlayacağına emin olabilirsiniz.

Aslıına bu uygulamada direk salt haliyle yapaktansa helper kullanarak işleri biraz daha kolay bir hale getireceğiz.

Hadi lafı fazla uzatmadan Google ReCaptha admin panelinden reCAPTCHA anahtarlarlarımız alalım ve entegrasyona geçelim.

Adım 1) reCAPTCHA admin paneline girelim ve oluştur butonuna basalım.

Alanları aşağıda ki gibi doldurun. NOT: Eğer localhost'da çalışmak iserseniz Alan Adları kısmına 127.0.0.1 yazarak test edebilirsiniz.

 Codeigniter 3 Google reCaptcha Kullanımı

bu adımlardan sonra Hizmet Şartlarını kabul edip Gönder butonuna basınız, ardından Site Anahtarı ve Gizli Anahtar karşınıza çıkacaktır.

 Codeigniter 3 Google reCaptcha Kullanımı

Şimdi bu kodları kopyalayın ve config/config.php dosyanızı açın ve yukarıda Site Anahtarı ve Gizli Anahtarı belirtilen yerlere giriniz.

$config['google_key'] = ''; // Site Anahtarı
$config['google_secret'] = ''; // Gizli Anahtar

Şimdiyse form'a veri gönderildikten sonra reCAPTCHA girilmiş mi? doğrumu veya yanlış mı bunların kontrolünü sağlayacağımız helper tanımlayacağız.

helpers/settings_helper.php dosyamızı açalım ve aşağıda ki fonksiyonu ekleyin.

function googleChaptcha($captcha,$redirect){
  $var = &get_instance();

  $secretKey = $var->config->item('google_secret');
  $ip = $_SERVER['REMOTE_ADDR'];
  $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
  $responseKeys = json_decode($response,true);
  if(intval($responseKeys["success"]) !== 1) {
   // Bu kısım eğer formu gönderen spam olarak algılanırsa devreye girecek. Hata mesajı verebilirsiniz.
    echo "Spam Olarak Algılandınız!";
  }

}

Şimdiyse reCAPTCHA kutucuğunu göstermek için form kısmına gidelim ve aşağıda'ki kodu <form></form> etiketleri içinde müsait bir yere ekleyelim.

<div class="g-recaptcha mt-3" data-sitekey="<?php echo $this->config->item('google_key') ?>"></div>

Bu kadarla bitmiyor, captcha'yı kullanacağınız sayfanın <head></head> etiketleri kısmına api.js çağıralım.

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

Artık kutucuk görünür hale gelecektir.

 Codeigniter 3 Google reCaptcha Kullanımı

Şimdi form gönderme işlemleri yapacağımız controllere gidelim ve googleChaptcha() fonksiyonumuzu çağıralım.

$captcha = $this->input->post("g-recaptcha-response");

     if(!$captcha){
      // Eğer captcha boşsa hata mesajı verebilirsiniz.
      echo "Lütfen Captcha kısmını boş geçmeyiniz!";
     }

googleChaptcha($captcha,"iletisim");

İşte bu kadar, artık Google reCaptcha'yı entegre ettik. Eğer captcha doğruysa devam edecek yanlışsa hata mesajı verecektir.

Beni dinlediğiniz için teşekkür ederim, umarım yazım işinize yaramıştır. Ayrıca Codeigniter ile toast bildirim mesajı kullanımı adlı yazımızı da okuyabilirsiniz.


Yorumlar (0)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!