PHP Google reCAPTCHA V2 Entegrasyonu: ‘Robot Değilim’ Doğrulaması Kurulumu

Merhaba önceki yazımızda google recaptcha v2 için nasıl site anahtarı ve secret anahtarı anahtarı oluşturacağımızı sizlerle paylaşmıştım. Şimdi ise bunların kullanım örneklerini paylaşıyorum.

Google reCaptcha V2 Çalışma Mantığı

V2 reCaptcha kullanıcının robot olmadığını dığrulaması için bir takım testlere tabi tutar. Form submit edildikten sonra arkaplanda o testler başarılı mı bunu kontrol eder. Bu şekilde iki adımlı bir entegrsayonu vardur.

Site Anahtarı ve Gizli Anahtar Oluşturma

Eğer site anahtarı ve gizli anahtar bilgilerini oluşturmadıysanız bu yazımızı ziyaret edebilirsiniz. Yazımızın içerisinde video anlatım da bulunuyor.

YAZI : Google reCaptcha V2 ve V3: Adım Adım Doğrulama Kodu Oluşturma Rehberi

Resimde gördüğünüz şekilde site anahtarını ve gizli anahtarı makalemiz üzerinden adımları takip ederek oluşturduğunuzu varsayıyorum.

PHP Google reCaptcha v2 Kurulumu

Öncelikle index.php adında bir sayfa oluşturuyoruz. Bu bizim formumuzun bulunacağı web sayfası.

İkinci olarak da submit.php adında doğrulama işlemimizi yapacağımız sayfamızı oluşturuyoruz ve aşağıdaki adımları takip ederek içeriklerini dolduruyoruz.

1.Adım Script Etiketi

Google recaptcha v2 için öncelikle html sayfamızın <head> bölümüne google recaptcha script kodunu yapıştırıyoruz.

HTML
<script src="https://www.google.com/recaptcha/api.js" async defer></script>

2.Adım Formumuza “g-recaptcha” class’ı ekliyoruz

Google Captcha entegre etmek iiçin <form> etiketleri araasına “g-recaptcha” class’ına ait bir div etiketi ekliyoruz. Etiketimize data-sitekey=”GOOGLE_SITE_KEY” şeklinde bir etiket ekliyoruz.

Tırnaklar içerisine önceki adımlarda belirlediğimiz google site anahtarı’nı yapıştırıyoruz.

Formumuzun son hali şu şekilde olacak.

HTML
<form action="submit.php" method="post">
        <input type="text" name="title">
        <div class="g-recaptcha" data-sitekey="GOOGLE_SITE_KEY"></div>
        <button type="submit">Submit</button>
</form>

3. Form Sayfası Sonucu

Form sayfamızın son hali şu şekilde:

HTML
<!doctype html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>Captcha</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
    <form action="submit.php" method="post">
        <input type="text" name="title">
        <div class="g-recaptcha" data-sitekey="GOOGLE_SITE_KEY"></div>
        <button type="submit">Submit</button>
    </form>
</body>
</html>

4. Form Gönderimi ve doğrulama sayfamız.

submit.php adında oluşturduğumuz sayfamıza aşağıdaki kodları yapıştırıyoruz.

GOOGLE_CAPTCHA_SECRET sabitinin yerine önceki adımlarda oluşturduğumuz google recaptcha gizli anahtar ( site key ) i yapıştırmayı unutmayın.
PHP
<?php
 
// formumuzdaki diğer alanlar ve bu alanların doğrulamaları.
$title = $_POST['title'];

// reCAPTCHA doğrulaması
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = [
    'secret' => GOOGLE_CAPTCHA_SECRET,
    'response' => $response,
    'remoteip' => $remoteip
];
$options = [
    'http' => [
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'method' => 'POST',
        'content' => http_build_query($data)
    ]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$result = json_decode($result);

if ($result->success) {
    // Başarılı
    echo 'Success';
} else {
    // Başarısız
    echo 'Failed';
}

Sayfamızın başında title gibi formumuza ait diğer alanların uzunluk ve veri tipi gibi doğrulamalarını yapabiliriz. Sonrasındaki google doğrulama kodları aynı şekilde koplyalayabilirsiniz.

Doğrulama için kodda da görebileceğiniz gibi google’a

$_POST[‘g-recaptcha-response’];

$remoteip = $_SERVER[‘REMOTE_ADDR’];

Şeklinde iki bilgi gönderiyoruz. Ve tabi recaptcha gizli anahtarı da isteğimize ekliyoruz. Dönen cevapta json formatında olduğu için öncelikle json_decode edip “success” verisi var mı diye bakıyoruz bu veri var ise doğrulama başarılı demektir. Ve bu if bloğu içerisine gerekli kodları yazabiliriz. Eğer doğrulama başarısız ise else bloğuna gerekli kodları yazabilirsiniz.

Projemiz 2 dosyadan oluşuyor ikisinin de son halini sizlerle paylaştık. Bir sonraki yazımızda google captcha v3 doğrulamasını anlatacağız. İyi çalışmalar.

Video Örnek Anlatım

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Alışveriş Sepeti
Hemen iletişime geçin!