Bugüne kadar irili ufaklı birçok sitede Google reCaptcha kullanıldığını görmüştüm. Botları uzak tutmakta diğer doğrulama yöntemlerine göre daha başarılıydı. Ama her geçen gün okunabilirliği azalıyordu. Yine de Google reCaptcha servisini seviyordum. Çünkü Google bu servis sayesinde eski kitapları dijitalleştiriyordu.
Geçtiğimiz günlerde Google reCaptcha’nın yeni sürümünün yayınlandığına dair bir haber gördüm. İncelediğimde yeni kullanım çok hoşuma gitti ve hemen denedim. Sonrasında da blogumda bununla ilgili bir yazı yazmaya karar verdim.
Aşağıdaki demo görsel sistemin nasıl çalıştığıyla ilgili fikir sahibi olmanıza yardımcı olacaktır.
İsterseniz yavaştan sistemin kullanımını incelemeye başlayalım. Öncelikle buraya tıklayarak Google reCaptcha servisine erişim sağlamalısınız. Sonrasında Get reCaptcha linkine tıklayarak sisteme giriş yapıyorsunuz.
Sonrasında yukarıdaki resimde olduğu gibi sitenizin kaydını oluşturuyorsunuz. Böylece sitenize özel Site key ve Secret key değerlerini alabileceksiniz.
Google Site Key
Formunuzu oluşturduğunuz html içerisinde lazım olacak.
Google Secret Key
Doğrulama işlemi için sitenin Google ile iletişim kurmasında kullanılacak.
Bu yazıda örnek olarak bir iletişim formunda Google reCaptcha kullanımını göstereceğim. Siz ihtiyacınıza göre kodları güncelleyebilirsiniz.
İlk olarak aşağıdaki kodları kullanarak bir iletişim formu oluşturmalısınız.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<!doctype html>
<html lang=“en”>
<head>
<meta charset=“UTF-8” />
<title>Google Yeni reCaptcha</title>
<link rel=“stylesheet” href=“css/style.css”/>
<!– reCaptha için gerekli js –>
<script src=‘https://www.google.com/recaptcha/api.js’></script>
<style>
.durum{
color: red;
}
</style>
</head>
<body>
<div id=“main”>
<h3>Google Yeni reCaptcha</h3>
<form action=“” method=“post”>
<label>Adınız</label> <input type=“text” name=“ad” /><br />
<label>Soyadınız </label><input type=“text” name=“soyad” /><br />
<label>Mesajınız </label><textarea name=“mesaj”></textarea><br />
<br/><br/>
<div class=“g-recaptcha” data-sitekey=“Google Site Key”></div>
<br/>
<input type=“submit” value=“Gönder” />
<span class=“durum”><?php echo $durum; ?></span>
</form>
</div>
</body>
</html>
|
Yukarıdaki kodları yazdığınızda aşağıdaki resimde gördüğünüz gibi kendi formunuzu görüyor olmalısınız. Site key değerinde bir hata yoksa Google reCaptcha da görünüyor olmalı.
index.php İçeriği
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<?php
session_start();
$durum = ”;
if ($_SERVER[“REQUEST_METHOD”] == “POST”) {
$recaptcha = $_POST[‘g-recaptcha-response’];
if (!empty($recaptcha)) {
include “curl.php”;
$google_url = “https://www.google.com/recaptcha/api/siteverify”;
$secret = ‘Google Secret Key’;
//kullanıcının ip adresi
$ip = $_SERVER[‘REMOTE_ADDR’];
//istek adresini oluşturuyoruz
$url = $google_url . “?secret=” . $secret . “&response=” . $recaptcha . “&remoteip=” . $ip;
$res = curlKullan($url);
$res = json_decode($res, true);
//işlem başarılıysa çalışacak kısım
if ($res[‘success’]) {
//örnek olduğu için güvenlik kontrolü yapmıyorum. Normalde zararlı kodları süzmelisiniz.
$ad = $_POST[‘ad’];
$soyad = $_POST[‘soyad’];
$mesaj = $_POST[‘mesaj’];
if (!empty($ad) && !empty($soyad) && !empty($mesaj)) {
//mail gönderimini sağlayacak kodlar
} else {
$durum = “Lütfen formdaki tüm alanları doldurun.”;
}
} else {
$durum = “Lütfen bot olmadığınızı doğrulayın.”;
}
} else {
$durum = “Lütfen bot olmadığınızı doğrulayın.”;
}
}
?>
|
E-posta gönderim kısmında yazacağınız kodlar hakkında fikriniz yoksa PHPMailer Sınıfı İle SMTP’den Mail Gönderme başlıklı yazımı okumanızı öneririm.
curl.php İçeriği
Bu dosyada yer alan fonksiyon yardımıyla Google reCaptha doğrulamasını yapacağız. Bunun için php_curl eklentisi etkin olmalı.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
function curlKullan($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, “Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16”);
$curlData = curl_exec($curl);
curl_close($curl);
return $curlData;
}
?>
|
Tüm işlemler bu kadar. Umarım faydalı bir yazı olmuştur.




