PHP

reCAPTCHA Entegrasyonu Nasıl Yapılır

CAPTCHA belki de internet üzerindeki sinir bozucu deneyimlerden en yaygın olanıdır. Ancak spam ile mücadele etmekte hala en iyi yöntem budur. İnsan ve bot ayırımı yapmak için kullanılan bir çeşit güvenlik önlemidir. 

İroniktir, çarpık metin doğrulama kodlarını okumak hiçbir zaman kolay olmamıştır. Deneye deneye bıkdıktan sonra üye olmaktan vazgeçtiğim web siteleri olmuştu. Ancak gelişmiş yapay zeka ile artık bu sorunu çok kolay çözebilirsiniz. Bu nedenle 2014’ün sonlarına doğru Google geliştiricileri en iyi çözümü ortaya koydu. https://www.google.com/recaptcha/ bu geliştirme çarpık metinler yerine mouse ile tıklamanızı veya boşluk tuşuna basmanızı istiyor.

Ancak yapay zeka bazen gerçekten insan olduğunuza ikna olmayabiliyor o zaman ikinci bir seçenek çıkıyor. Şimdi adım adım nasıl yapılacağına bakalım.

1. Adım

Öncelikle bir API anahtarına ihtiyacımız var; şu adresten Google hesabınız ile kayıt olarak API anahtarımıza erişiyoruz.

2. Adım

3. Adım
Anahtarların altında web sitenize eklemek üzere bazı javascript dosyaları görürsünüz. 

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

Ayrıca, bir parametre daha ekleyerek 40 dil desteğini tanımlayabilirsiniz. Mesela aşağıda Türkçe destekli bir snippet oluşturduk.

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

4. Adım
Şimdi reCAPTCHA doğrulamasını formumuza ekleyelim.

<div class="g-recaptcha" data-sitekey="BURAYA PANELDEN ALDIĞINIZ SITE KEY EKLENECEK">div>

5. Adım
Bu adımda doğrulama kısmını yapıyoruz. Burada yine Google geliştiricileri yardımımıza yetişiyor ve recaptchalib.php dosyasını projemize dahil ediyoruz.

require_once "recaptchalib.php";
//secret key
$secret = "BURAYA PANELDEN ALDIĞINIZ SECRET KEY EKLENECEK";
$response = null;
$reCaptcha = new ReCaptcha($secret);
if ($_POST["g-recaptcha-response"]) {
     $response = $reCaptcha->verifyResponse($_SERVER["REMOTE_ADDR"],$_POST["g-recaptcha-response"]);
}if ($response != null &amp;&amp; $response->success) {
     echo "Merhaba " . $_POST["name"] . " (" . $_POST["email"] . "), formu gönderdiğiniz için teşekkürler!";
} else { } 

Leave a Reply

Your email address will not be published.