CodeBlanks Logo Icon CodeBlanks

Hata mesajları gösterme

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

Doğrulama hatalarını form yanında kullanıcıya göstermeyi öğrenirsin.

Hataları diziye toplama

Doğrulama hatalarını bir diziye topla ve forma yanında göster. Bu yöntem hem kullanıcıyı bilgilendirir hem de kodun okunabilirliğini artırır. Örnek: $errors = []; ile başlar, $errors[] = "Ad boş"; ile eklersin. Sonra if ($errors) ile varsa her birini yazdırırsın.

Hata mesajları kullanıcıya açık ve nazik olmalı. "Ad boş" yerine "Lütfen adınızı girin" daha iyidir. Formu yeniden gösterirken daha önce girilen değerleri de geri yazdırırsın; böylece kullanıcı yeniden başlamak zorunda kalmaz.

Hataları foreach ile gösterme

Hataları göstermek için foreach ile diziyi gezersin: foreach ($errors as $error) { echo "<li>" . htmlspecialchars($error) . "</li>"; }. Hata mesajını da htmlspecialchars() ile kaçırırsın; çünkü kullanıcı adına benzer şekilde hata metinleri de XSS vektörü olabilir.

Formu yeniden gösterirken önceki değeri value="" içine yazarsın: value="<?php echo htmlspecialchars($name ?? ''); ?>". Böylece kullanıcı yanlış girdiğini düzeltip yeniden gönderebilir.

Uygulama Hataları topla ve yazdır

$errors = []; ile başla. $name = ""; ata. if (empty($name)) koşulunda $errors[] = "Ad gerekli"; yaz. Sonra if ($errors) koşulunda foreach ($errors as $error) ile echo $error . "\n"; yaz.

Örnek çözümü göster
Önce $errors = []; ve $name = ""; yaz. Sonra if (empty($name)) { $errors[] = "Ad gerekli"; } ve if ($errors) { foreach ($errors as $error) { echo $error . "\n"; } } ekle.
Örnek çözüm:
<?php
// Hataları topla ve yazdır
$errors = [];
$name = "";
if (empty($name)) {
    $errors[] = "Ad gerekli";
}
if ($errors) {
    foreach ($errors as $error) {
        echo $error . "\n";
    }
}

Kendini test et

  1. errors dizisine hata ekle

    $errors____ = "Ad boş";
    Cevabı göster
    $errors[] = "Ad boş";
  2. Hata akış adımlarını eşle

    $errors = []
    Boş dizi başlat
    $errors[] = ...
    Yeni hata ekle
    foreach ($errors as $error)
    Hataları gez
    htmlspecialchars($error)
    Hatayı güvenli yaz
  3. Hata mesajlarını neden htmlspecialchars ile kaçırırsın?

    • Hata mesajlarını renklendirmek için
    • Çünkü hata metni de kullanıcı girdisi içerebilir
    • Çünkü htmlspecialchars hataları siler
    • Doğrulamayı hızlandırmak için
    Cevabı göster

    Çünkü hata metni de kullanıcı girdisi içerebilir — Doğru. Hata metni kullanıcı girdisinden geldiği için XSS vektörü olabilir; kaçırırsan güvenli olursun.

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