Google reCaptcha kullanımı

Merhabalar bugün sizlere php ile yazdığınız scripte Google Recaptcha eklemeyi göstericem. Recaptcha’yı sitenize eklemek için sitekey ve secretkey’e ihtiyacınız var, bu kodları almak için recaptcha admin sayfasına giriyoruz. Sonra yeni site ekleden site ekleme sayfasına giriyoruz.

Etiket: buraya açıklama yazabilirsiniz.

reCaptcha türü: reCaptcha s2 seçeneğini seçiyoruz, altında açılan seçeneklerden “Robot değilim” Onay Kutusu seçeneğini seçiyoruz.

Alan adları: sitenizin adresini yazıyorsunuz.

Daha sonra hizmet şartlarını kabul edip gönder diyoruz ve bizi keylerin olduğu sayfaya yönlendiriyor, sayfayı kapatmayın çünkü lazım olacak. Şimdi diğer işlemlere geçelim.

Buraya kadar sıkıntısız bir şekilde geldiyseniz sayfanızda recaptcha’yı koyacağınız yeri belirleyin, ben örnek olarak kullanıcı login sayfasına koyacağım.

Login.php dosyamızı açtık, doğrulama kutusunu koymak istediğiniz yere şu kodları ekliyosunuz.

<div class="g-recaptcha" data-sitekey="buraya sayfadaki sitekeyi yapıştırıyoruz"></div>

Login.php body etiketinin en altına da bu kodu yapıştırıyoruz.

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

Login.php dosyamızdaki işlemler bu kadardı şimdi kontrol ettireceğimiz bölüme geçelim.

Bunun için kontrol.php dosyamıza geçiyoruz ve bu kodları yapıştırıyoruz.

<?php
// buraya post ile gelen verileri alıyoruz
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){
	$secret = "buraya secretkeyi yapıştırıyoruz";
	$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
	$responseData = json_decode($verifyResponse);
	if($responseData->success)
	{
		// eğer dönen değer başarılıysa buradaki kodlar çalışacak
		// burada post ile gelen input değerlerini alıp veritabanındaki verilerle karşılaştırıp kullanıcı girişini yapabilirsiniz
	}
	else{
		// eğer dönen değer başarısızsa buradaki kodlar çalışacak
		echo "recaptcha hatalı";
	}
}
else{
	echo "lütfen recaptcha'yı doldurunuz";
}
?>

Bu konumda bu kadardı başka konuda görüşmek üzere iyi günler.