reCAPTCHA Kullanımı

recaptcha kullanımı

reCAPTCHA Kullanımı sizi büyük bir dertten, spamdan kurtarır. Spam eskiden internet aleminin sabıkası en kabarık suçlusuydu. Fakat Google’ın geliştirdiği reCAPTCHA sistemi formlarınızda spamdan kurtulmamızı sağladı.

reCAPTCHA Nedir?

reCAPTCHA web sitenizde kullandığınız formları spamdan koruyan ücretsiz bir hizmettir. reCAPTCHA gelen kötü niyetli otomatik yazılım botlarını engellemek için google tarafından geliştirilmiştir.

reCAPTCHA Kurulumu

Google reCAPTCHA web sitenize kurup kullanmak için gereksinimler şunlardır. (PHP tabanlı siteler için)

Google reCAPTCHA site ekleme

İlk olarak Google hesabınızla reCAPTCHA‘ya giriş yapın. Giriş yaptıktan sonra spamdan korumak istediğiniz sitenizi kayıt edin. Bunun için aşağıdaki adımlar takip edin.

reCAPTCHA

Label: Eklediğiniz siteleri hatırlamak için bir etiket

Domains: Kullanacağınız site adresleri, her satıra bir site girebilirsiniz. (Ben her site için yeni bir kayıt oluştururum)

Send alerts to owners: Bu seçeneği işaretleyin ki herhangi bir durum olursa size geribildirim gelsin. (bildirimler giriş yaptığınız Google hesabına gönderilir.)

Gerekli bilgileri girdikten sonra Register butonuna tıklayarak kaydı bitirin.

Kayıt işlemi tamamladıktan sonra kaydettiğiniz siteye tıklayın. Karşınıza şöyle bir ekran çıkacak.

reCAPTCHA keys

Bu sayfayı bir kenarda açık tutun lazım oldukça burada verilen değerleri kullanacağız.

Google reCAPTCHA Api’si

<script src="https://www.google.com/recaptcha/api.js?hl=tr"></script>

Yukarıdaki api linkinde çağırılan js dosyasının sonunda “?hl=tr” koşulu kullanacağımız apinin türkçe olması belirtmemizi sağlar. Desteklenen tüm dillere buradan ulaşabilirsiniz. Bu kod ayrıca az önce kayıt yaptığımız sayfanın Step 1: client-side integration sekmesinde bulabilirsiniz. (İngilizce için “hl=tr” koşulunu kaldırıp dosyayı çağırmanız yeterlidir.)

Google reCAPTCHA için  form elemanı

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

Bu form elemanını kafadan oluşturmuyoruz. Bu bilgiye az önce açıp bir kenara aldığımız sayfadan alacağız. Sayfadaki yeri Step 1: client-side integration sekmesindeki ikinci kod.

Google reCAPTCHA Html  form içine yerleşimi

<html>
  <head>
    <title>Google reCAPTCHA Yorum Formu - omererkan.com</title>
    <script src='https://www.google.com/recaptcha/api.js?hl=tr'></script>
  </head>
  <body>
    <h1>Google reCAPTHA Yorum Formu</h1>
    <form id="yorum" action="" method="post">
      <input type="email" placeholder="E-Postanız" size="40"><br><br>
      <textarea name="yorum" rows="8" cols="39"></textarea><br><br>
      <input type="submit" name="submit" value="Gönder"><br><br>
      <div class="g-recaptcha" data-sitekey="=== Site key ==="></div>
    </form>
  </body>
</html>

Yukarıdaki Html formda 4. ve 12. satırlar reCAPTCHA çalışması için gerekli elemanlar.

Site Key Sitemizi kayıt ettikten sonra aldığımız anahtarı form içindeki data-sitekey alanına eklemeyi unutmayın.

Google reCAPTCHA PHP form kontrolü

Geldik son adıma şimdi hazırladığımız formu php ile kontrol ettirelim. Eğer koşullar doğruysa yani gerçek bir kullanıcı ise formu çalıştıracağız. Aksi durumda form hata verecek.

if (isset($_POST['email'])) {
    $email = $_POST['email'];
}
if (isset($_POST['yorum'])) {
    $email = $_POST['yorum'];
}
if (isset($_POST['g-recaptcha-response'])) {
    $captcha = $_POST['g-recaptcha-response'];
}
if (!$captcha) {
    echo '<h2>Lütfen robot olmadığınızı doğrulayın.</h2>';
    exit;
}
$kontrol = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRET KEY&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
if ($kontrol.success == false) {
    echo '<h2>Spam Gönderi!</h2>';
} else {
    echo '<h2>Bütün koşullar sağlandı. Form sorunsuz çalıştı.</h2>';
}

Yukarıdaki kod formdan aldığı veriyi $kontrol değişkeni ile reCAPTCHA’dadan gelen cevaba göre çalışır. $kontrol.success file_get_contents fonksiyonu ile istek yapılan json dosyasının bir elemanıdır sadece true ve false döndürür.

Yukarıdaki php kodundaki önemli kısım 14. satırdır. bu satırdaki SECRET KEY kısmına kendi anahtarınızı eklemeyi unutmayın.

Spamsız günler dileğiyle…

Edit: 19 Kasım 2018
reCAPTCHA Konusunda benimde yakından takip ettiğim Tayfun Erbilen bir video ile bu konuyu anlatmış. Güzel anlatımı ve basit bir fonksiyon ile işlemi oldukça basit hale getirmiş.

18 Comments

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir