İletişim Formu: Google ReCaptcha Destekli Hazır Kodlar

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Top Poster Of Month
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Sadece PHP ile form yapmak artık yeterli değil. Botlar saniyeler içinde binlerce spam e-posta gönderebilir. Google reCAPTCHA kullanarak formunuzu gerçek kullanıcılarla sınırlayacağız.

1. Google'dan Anahtarları Almak​


Başlamadan önce Google reCAPTCHA Admin paneline giderek sitenizi kaydetmeniz ve şu iki anahtarı almanız gerekir:

  • [] Site Anahtarı (Site Key): HTML formunda görünür.
    [] Gizli Anahtar (Secret Key): PHP tarafında doğrulama için kullanılır.

2. HTML Formu (index.php)​


Formumuza Google'ın JavaScript kütüphanesini ve reCAPTCHA kutucuğunu ekliyoruz.

HTML:
<!DOCTYPE html>

<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Güvenli İletişim Formu</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>

<form action="gonder.php" method="POST">
<input type="text" name="ad" placeholder="Adınız" required>



<input type="email" name="email" placeholder="E-Posta Adresiniz" required>



<textarea name="mesaj" placeholder="Mesajınız"></textarea>


<div class="g-recaptcha" data-sitekey="BURAYA_SITE_ANAHTARINIZI_YAZIN"></div><br>

<button type="submit">Gönder</button>

</form>

</body>
</html>

3. PHP Doğrulama ve Gönderim (gonder.php)​


Bu aşamada, kullanıcının reCAPTCHA'yı geçip geçmediğini Google sunucularına sorarak doğruluyoruz.

PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$secretKey = "BURAYA_GIZLI_ANAHTARINIZI_YAZIN";
$captchaResponse = $_POST['g-recaptcha-response'];

// Google API&#39;ye istek gönderiyoruz
$sorgu = file_get_contents(&quot;[https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&amp;response=$captchaResponse](https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&amp;response=$captchaResponse)&quot;);
$sonuc = json_decode($sorgu);

if ($sonuc-&gt;success) {
    // reCAPTCHA doğrulaması başarılı!
    $ad = htmlspecialchars($_POST[&#39;ad&#39;]);
    $email = filter_var($_POST[&#39;email&#39;], FILTER_SANITIZE_EMAIL);
    $mesaj = htmlspecialchars($_POST[&#39;mesaj&#39;]);

    // Burada PHPMailer ile gönderim yapabilirsiniz
    echo &quot;Teşekkürler $ad, mesajınız bot kontrolünden geçti ve alındı.&quot;;
} else {
    // Doğrulama başarısız
    echo &quot;Lütfen robot olmadığınızı doğrulayın!&quot;;
}

}
?>

Güvenlik ve Performans İpuçları​


ÖzellikNeden Gerekli?
file_get_contentsGoogle sunucusuyla hızlı iletişim kurmak için (veya cURL kullanılabilir).
htmlspecialcharsXSS saldırılarını önlemek için form verilerini temizler.
v3 AlternatifiKullanıcıya kutucuk göstermeden arka planda puanlama yapar.

Sonuç​


reCAPTCHA entegrasyonu, formunuzu "çöp" mesajlardan temizlemenin en profesyonel yoludur. PHP tarafında sadece success değerini kontrol etmek yeterlidir. Eğer çok yüksek trafikli bir siteniz varsa, file_get_contents yerine daha performanslı olan cURL yöntemini tercih etmelisiniz.
 
Geri
Üst