PHP ile İletişim Formlarındaki Spam Mesajları Engelleme
Blog'a Dön

PHP ile İletişim Formlarındaki Spam Mesajları Engelleme

Buğra Şıkel

PHP Spam Killer

Merhabalar, bu içeriğimizde sayfalarımızda oldukça sık kullandığımız iletişim formlarına botlar tarafından bırakılan spam mesajları engellemenin bir kaç yönteminden bahsedeceğim. Bahsettiğim yöntemler %100 garantili olmamakla birlikte spam mesajların genellikle ortak bir kalıpta olduğundan yola çıkılarak geliştirilmiştir. Spam mesajları tamamen engellemek istiyorsak reCAPTCHA kullanmalıyız. Ama bu içerikte reCAPTCHA kullanmadan engellemeyi inceleyeceğiz.

İlk olarak spam mesajların yapısına bakalım. Spam mesajlar genellikle içerisinde bir link(url) barındırırlar. Ayrıca bir websitenin tanıtımını yaptıkları için formumuzda eğer bir website inputu varsa onu doldurmadan geçmezler çünkü amaçları o websitesinin tıklanmasını sağlamaktır. Bu davranışlarından yola çıkarak önce bize gelen mesajda bir url var mı yok mu ona bakacağız. Ayrıca formumuza normal kullanıcılarımızın göremeyeceği gizli bir website inputu ekleyip bunun doldurulmuş olup olmadığını kontrol edeceğiz. Kurduğumuz bu tuzak sayesinde botların doldurduğu websitelerini yakalayacağız.

İlk olarak HTML Formumuza tuzağımızı kuralım.

<input type="text" id="website" name="website"/>

CSS ile tuzak inputumuzu gizleyelim.

#website{ display:none; }

Şimdi ise PHP spam engelleyici fonksiyonumuzu yazalım.

function spamKiller($content, $input = null) // ilk değişkenimiz kullanıcıdan gelen mesaj, ikinci değişkenimiz ise tuzak inputumuzdan gelen veri
{
    if ($input) { // eğer inputta bir veri varsa -normal kullanıcılar göremeyeceği için olmamalı- işlemi burada öldürüyoruz ve spam olduğunu tespit etmiş oluyoruz.
        die("Spam Mesaj");
    }
    if(str_contains($content,'http')==1 || str_contains($content,'https')==1){ // Eğer içerisinde bir url barındırıyorsa onu tespit ediyoruz ve öldürüyoruz.
        die("Mesaj URL İçeremez");
    }else {
        return $content; // bunlardan hiç biri yoksa mesaj temizdir ve fonksiyonumuzdan geçmiş olarak devam edecektir.
    }
}

Şuan tek yapmamız gereken form gönderildikten sonra verileri aldığımız noktada bu fonksiyonu kullanmak.

// -- Diğer kodlarımız

$message = $_POST['message'];
$trap = $_POST['website'];
$message = spamKiller($message , $trap);
// bu fonksiyondan sağ çıkabilirse kalan işlemlerimize devam edebiliriz.

// -- Diğer kodlarımız

Dediğim gibi bu fonksiyon ile spam mesajlara karşı gerçekten güçlü bir önlem almış olsak da maalesef %100 bir koruma sağlamıyor. %100 koruma için reCAPTCHA kullanmanızı öneriyorum. Başka bir yazımda Google reCAPTCHA kullanımını anlatacağım.

Diğer yazılarıma göz atmak için tıklayın.

Web sitesine mi ihtiyacınız var ?

Bunları da beğenebilirsiniz

Üretim Hattında Düşük Gecikmeli ViT: Edge Cihazlarda Yüksek Çözünürlüklü Görüntü İşleme Optimizasyonu
1 Şubat 2026

Üretim Hattında Düşük Gecikmeli ViT: Edge Cihazlarda Yüksek Çözünürlüklü Görüntü İşleme Optimizasyonu

Bu rehber, üretim hatlarında yüksek çözünürlüklü görüntüler için düşük gecikmeli Vision Transformer (ViT) çıkarımını edge cihazlarda nasıl optimize edeceğinizi adım adım açıklıyor. Gerçek zamanlı kalite kontrol ve otomasyon hedefleriyle performans artırma tekniklerini keşfedin.

Devamını Oku
Üretim Sahası Verileri İçin Büyük Ölçekli Zaman Serisi Depolama: Çok Modelli Veritabanı Entegrasyon Yaklaşımları
17 Şubat 2026

Üretim Sahası Verileri İçin Büyük Ölçekli Zaman Serisi Depolama: Çok Modelli Veritabanı Entegrasyon Yaklaşımları

Üretim tesislerinden gelen yoğun zaman serisi verilerini etkin bir şekilde depolamak ve yönetmek kritik bir zorluktur. Bu yazımızda, üretim sahası verileri için büyük ölçekli zaman serisi depolama ihtiyaçlarını ve çeşitli çok modelli veritabanı entegrasyon yaklaşımlarını inceleyeceğiz.

Devamını Oku
Autoencoder vs. CNN: Görüntü Tabanlı Anomali Tespitinde Hangisi?
14 Ocak 2026

Autoencoder vs. CNN: Görüntü Tabanlı Anomali Tespitinde Hangisi?

Endüstriyel otomasyon, kalite kontrol ve güvenlik sistemleri gibi birçok alanda görüntü tabanlı anomali tespiti kritik bir rol oynamaktadır. Ancak bu karmaşık problemi bir web uygulamasına…

Devamını Oku
Ask AI