Özet - Formlar
Form, $_POST ve htmlspecialchars'ı birleştirerek kayıt formu yazarsın.
Özet - Formlar
Bu grupta form oluşturmayı, veriyi $_POST ile almayı, htmlspecialchars() ile XSS'i engellemeyi, empty() ve filter_var() ile doğrulama yapmayı ve hata mesajlarını göstermeyi öğrendin.
Bir kayıt formu sayfasının akışı şöyledir: formu göster → gönderimi denetle → veriyi $_POST'tan al → empty() ile boş alanları, filter_var() ile e-postayı denetle → hataları diziye topla → hata yoksa teşekkür et, varsa formu geri göster ve hataları yazdır.
Uygulama Kayıt formunu işle
$_POST['name'] = ""; ata. $_POST['email'] = "kötü"; ata. $errors = []; ile başla. if (empty($_POST['name'])) koşulunda $errors[] = "Ad gerekli"; yaz. if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) koşulunda $errors[] = "E-posta geçersiz"; yaz. Sonra if ($errors) koşulunda foreach ($errors as $error) ile echo $error . "\n"; yaz, else bloğunda echo "Hoş geldin, " . htmlspecialchars($_POST['name']) . "!"; yaz.
Örnek çözümü göster
Önce $_POST['name'] = ""; ve $_POST['email'] = "kötü"; yaz, $errors = []; ile başla. İki if ile hataları topla. Sonra if ($errors) { foreach ($errors as $error) { echo $error . "\n"; } } else { echo "Hoş geldin, " . htmlspecialchars($_POST['name']) . "!"; } ekle.
Örnek çözüm:
<?php
// Kayıt formunu işle
$_POST['name'] = "";
$_POST['email'] = "kötü";
$errors = [];
if (empty($_POST['name'])) {
$errors[] = "Ad gerekli";
}
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errors[] = "E-posta geçersiz";
}
if ($errors) {
foreach ($errors as $error) {
echo $error . "\n";
}
} else {
echo "Hoş geldin, " . htmlspecialchars($_POST['name']) . "!";
}
Kendini test et
-
Bir kayıt formunda ilk adım ne olmalı?
- Formu doğrudan veritabanına yaz
- Kullanıcıdan gelen veriyi güvenerek kabul et
- Formu göster ve $_POST ile veriyi al
- Hataları görmezden gel
Cevabı göster
Formu göster ve $_POST ile veriyi al — Doğru. Önce formu göster, gönderildiğinde $_POST ile veriyi alırsın.
-
Özet kavramları eşle
- method="post"
- Veriyi gövdede gönderir
- $_POST['name']
- Alan değerini alır
- empty()
- Boş alanı yakalar
- htmlspecialchars()
- XSS'i engeller
-
Özette htmlspecialchars çağrısını tamamla
echo ____($_POST['name'], ENT_QUOTES);Cevabı göster
echo htmlspecialchars($_POST['name'], ENT_QUOTES);