CodeBlanks Logo Icon CodeBlanks

Form doğrulama temelleri

PHP kursu · Başlangıç · Ders 103/116

Boş alan ve e-posta biçimi denetimi yapmayı öğrenirsin.

Doğrulama neden gerekli?

Sunucuya gelen veriyi hiçbir zaman olduğu gibi kabul etme; doğrula. En temel denetim empty() ile boş alan yakalamaktır: if (empty($_POST['name'])) { ... }. empty() hem tanımsız hem de boş dizeyi yakalar; isset() ise yalnızca tanımsız olanı.

E-posta biçimini denetlemek için filter_var() kullanılır: if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { ... }. filter_var() yerleşik bir doğrulama aracıdır; kendi regex yazmaktan daha güvenlidir.

empty() ve isset() farkı

empty() ve isset() farklı şeyleri denetler. isset($x) değişken tanımlıysa ve null değilse true döner. empty($x) ise değişken tanımsızsa, null, "", "0", 0, false veya boş dizi ise true döner.

Form doğrulamada empty() daha kullanışlıdır: if (empty($_POST['name'])) ile hem eksik hem de boş bırakılmış alanı tek seferde yakalarsın. Eksik anahtar durumunda empty() notice vermez; çünkü tanımsız değişkeni false sayar.

Uygulama E-posta doğrulaması yap

$email = "ayse@codeblanks.com"; ata. if (filter_var($email, FILTER_VALIDATE_EMAIL)) koşulu içinde echo "Geçerli"; yaz. else bloğunda echo "Geçersiz"; yaz.

Örnek çözümü göster
Önce $email = "ayse@codeblanks.com"; yaz. Sonra if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "Geçerli"; } else { echo "Geçersiz"; } ekle.
Örnek çözüm:
<?php
// E-posta doğrulaması yap
$email = "ayse@codeblanks.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Geçerli";
} else {
    echo "Geçersiz";
}

Kendini test et

  1. Doğrulama aracını amacına eşle

    empty()
    Boş alan yakalar
    isset()
    Tanımsız değişken denetler
    filter_var()
    E-posta biçimi
    htmlspecialchars()
    XSS engeller
  2. E-posta biçimini denetlemenin en güvenli yolu hangisi?

    • filter_var($email, FILTER_VALIDATE_EMAIL)
    • Kendi regex'ini yazmak
    • strpos($email, '@') ile bakmak
    • empty($email) ile kontrol
    Cevabı göster

    filter_var($email, FILTER_VALIDATE_EMAIL) — Doğru. filter_var FILTER_VALIDATE_EMAIL bayrağıyla e-posta biçimini güvenle denetler.

  3. filter_var ile e-posta denetimini tamamla

    if (!____($email, FILTER_VALIDATE_EMAIL)) {
        echo "Geçersiz";
    }
    Cevabı göster
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Geçersiz";
    }

Başlangıç bölümündeki tüm dersler