Codeigniter 3 İçin Google Recaptcha Kullanımı (Robot Değilim Onay Kutusu)

By Admin
In BackEnd
12/Kasım/2020
Okuma Süresi: 3 dk.

Selam sevgili okur,

Hiç uzatmadan madde madde ilerleyelim;

1- Google Recaptcha Admin yazıp aratın. Gelen ilk sonuca tıklayın ve sağ üstte yer alan + ikonuna tıklayıp "reCAPTCHA s2İstekleri bir eylemle doğrulayın"ı seçin, altında çıkan "Robot değilim" Onay Kutusu İstekleri "Robot değilim" onay kutusuyla doğrulayın'ı da işaretleyin. Diğer bilgileri de doldurup recaptcha için size verilen key ve secret kodlarını alın.

2- Bu aldığınız google_key ve google_secret kodlarını config/config.php içinde en alta şu şekilde yapıştırın;

$config['google_key'] = 'YOUR_GOOGLE_KEY';
$config['google_secret'] = 'YOUR_GOOGLE_SECRET';

3- Bu onay kutusuna hangi view dosyasında göstermek istiyorsanız orayı açın ve head alanında recapctha'yı kullanabilmemiz için gereken js dosyasını çağırın;

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

4- Yine aynı view sayfasında formun içine hatta en altta formu yollamaya yarayan butonun bir üstüne şu div'i yapıştırıyoruz. 2. maddede config içerisine yazdığımız key değerini çekiyoruz burada;

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

5- Geçelim controller'da yapacaklarımıza. Kodları komple yapıştırayım;

$recaptchaResponse = trim($this->input->post('g-recaptcha-response')); //name'si g-recaptcha-response olan bir textarea ekleniyor otomatik olarak view kısmında. Tıklanıp tıklanmadığı bilgisi alınıyor aslında. 
$userIp=$this->input->ip_address(); //burası ip adresini alıyor zaten açıklamaya gerek yok :)
$secret = $this->config->item('google_secret'); //2. maddedeki config'e kaydettiğimiz secret kodunu çekiyoruz burada. 
$url="https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$recaptchaResponse."&remoteip=".$userIp; //bütün aldığımız bu verileri curl ile google'a yolluyoruz. Google bize cevap olarak "success" dönerse işlem başarılıdır.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);

$status= json_decode($output, true);

if ($status['success']) { // eğer işlem başarılıysa buraya yazacağımız işlemi yapar.}else{//değilse burayı yapar.}

 

İşlem bu kadar basit sevgili okur. 5 maddede anlatmış olduk. Umarım işini görmüştür :)


Codeigniter'da MY_Controller neden kullanılır? Mantığı nedir? Ne işe yarar?
Codeigniter'da array içerisindeki objelere bir veri eklemek