PHP filter_var() Fonksiyonu | Geçerli E-posta Kontrolü

Merhaba arkadaşlar, Bu makalemizin konusu html formlardan post işlemi ile gelen bir e-posta adresinin, sunucu tarafında php ile e-posta kriterlerine uygun olup olmadığını, içerisine illegal karakter yazılıp yazılmadığını otomatik olarak kontrol etmemizi sağlayan filter_var() fonksiyonunu inceleyip örneklendireceğiz.

Geçerli E-posta Kontrolü
Geçerli E-posta Kontrolü

Bazı durumlarda iletişim formlarından gelen değerlerin özellikle E-Posta değerinin filtrelenmesi ve sunucuya ulaşmadan önce süzülmesi gerekiyor. Doğru mail adresleri kabul etmek ve spam işlemlerden sunucularımızı olabildiğince korumak için bu tür filtrelemeler artık standart haline gelmeye başladı.

PHP ile e-posta kontrolü yapmak için birkaç dizi basit işlemi yapmamız gerekiyor. Bu işlemlerden ilki ise html form oluşturmak. Öncelikle bir html form oluşturalım içerisinde sadece e-posta adresi ve bir de gönder butonu olsun.

<!doctype html>

<html lang="tr">
  <head>
    <meta charset="utf-8">

    <title>Php Filter_var() Fonksiyonu</title>
    <meta name="description" content="Php Filter_var() Fonksiyonu">
    <meta name="author" content="WebdeYazilim">
  </head>

  <body>
    <form action="kontrol.php" method="post">
      <label for="email">E-posta Adresiniz: </label>
      <input type="email" name="email" placeholder="E-posta Adresiniz" id="email"><br /> <br />
      <button type="submit">Gönder</button>
    </form>
  </body>
</html>

Html kodumuzu index.html olarak kaydedelim ve aşağıdaki kodu da kontrol.php olarak hemen indeximizin bulunduğu dizine kaydedelim.

<?php

//Post ile gelen e-posta adresini alıyoruz.
$email = $_POST['email'];

//filter_var fonksiyonu ile geçerli olup olmadığını kontrol ediyoruz.
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

  //Girilen e-posta adresi geçerli ise işlemlerimizi yapıyoruz.
  echo 'Geçerli bir e-posta adresi girdiniz.';

} else {

  //Girilen e-posta adresi geçersiz ise işlemlerimizi yapıyoruz.
  echo 'Geçersiz bir e-posta adresi girdiniz.';

}
?>

Yukarıda sadece e-posta adresinin geçerli olup olmadığını kontrol ettik, fakat bu adresi herhangi bir güvenlik kontrolünden geçirmedik. E-posta adresi illegal bir karakter içeriyor ise bunun önüne geçmemiz gerekecek. O halde aşağıdaki kodu bir inceleyelim.

<?php

//Post ile gelen e-posta adresini alıyoruz.
$email = $_POST['email'];

// E-posta adresini illegal karakterlerden arındırıyoruz. 
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

//filter_var fonksiyonu ile geçerli olup olmadığını kontrol ediyoruz.
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

  //Girilen e-posta adresi geçerli ise işlemlerimizi yapıyoruz.
  echo 'Geçerli bir e-posta adresi girdiniz.';

} else {

  //Girilen e-posta adresi geçersiz ise işlemlerimizi yapıyoruz.
  echo 'Geçersiz bir e-posta adresi girdiniz.';

}
?>

FILTER_SANITIZE_EMAIL callback fonksiyonu girilen adreste ( ) \/ gibi karakterleri temizler. Diğer özel karakterleri ise daha farklı fonksiyonlar yardımı ile temizleyebiliriz. İlerleyen günlerde bu konu hakkında da bir makale yayınlayacağız.

Ayrıca web geliştirme kategorimizi inceleyerek diğer dokümanlarımıza da ulaşabilirsiniz.

Bizi takipte kalın, hoşcakalın.

Photo of author

Metehan Türk

Uzun yıllardan beri dijital ortamda aktif faaliyet göstermiş, bu konuda herhangi bir eğitim almamış, kendi kendini yetiştirmiş biri olarak karşınıza çıkmaya cesaret buluyorum. Sosyal medya araçlarından nefret eder, "Bilgi Paylaştıkça Çoğalır" sözünü ilk duyduğumdan beri her fırsatta kullanmaktan zevk alan birisiyim.

“PHP filter_var() Fonksiyonu | Geçerli E-posta Kontrolü” üzerine 2 yorum

  1. Merhabalar peki bir kayıt formumu var kayıt yapan aynı e mail adresi ile forma tekrar kayıt yapılmasını engellemek için nasıl bir yol izlemeliyiz?

    Cevapla
    • $email = $_POST['email']; // Formdan gelen e-posta adresini alın

      if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      // E-posta adresi doğru formatlı
      // Şimdi bu e-posta adresini veritabanınızda kontrol edebilirsiniz
      // Aynı e-posta adresiyle daha önce kayıt yapıldı mı diye kontrol edin
      } else {
      // E-posta adresi geçerli bir formatta değil
      // Kullanıcıya hata mesajı gösterebilirsiniz
      echo "Geçerli bir e-posta adresi girin.";
      }

      Cevapla

Yorum yapın