Php 8 Form Bilgilerinin Kontrollerde Tutulması
PHP 8'de form bilgilerinin kontrollerde tutulması, kullanıcı formu doldurduktan sonra hata oluşursa bilgilerin kaybolmasını önlemek için yapılır. Bu, kullanıcı deneyimini artırır ve kullanıcıların formu tekrar doldurmasını engeller. Form bilgilerinin yeniden doldurulması, özellikle hatalı gönderimlerde, veri kaybını önler.
1. Form Bilgilerini Tutma Yöntemleri
PHP'de form bilgilerini iki şekilde tutabiliriz:
- POST verilerini tekrar doldurmak: Form gönderildikten sonra aynı verilerin formda tekrar gösterilmesini sağlar.
- Session (oturum) kullanımı: Verileri session ile saklayarak, form bilgilerinin bir sayfadan diğerine taşınmasını sağlar.
1.1. POST Verilerinin Tekrar Formda Gösterilmesi
Formu gönderdiğimizde, kullanıcı herhangi bir hatalı bilgi girdiğinde formdaki bilgileri tekrar göstermek için value veya textarea etiketleri içinde PHP kullanabiliriz. Bu sayede form verileri kaybolmaz.
HTML Formu:
<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>Kayıt Formu</title> </head> <body> <h1>Kayıt Formu</h1> <form action="register.php" method="post"> <label for="name">İsim:</label> <input type="text" id="name" name="name" value="<?php if(isset($_POST['name'])) echo htmlspecialchars($_POST['name']); ?>"> <br> <br> <label for="email">E-posta:</label> <input type="email" id="email" name="email" value="<?php if(isset($_POST['email'])) echo htmlspecialchars($_POST['email']); ?>"> <br> <br> <label for="password">Şifre:</label> <input type="password" id="password" name="password"> <br> <br> <input type="submit" value="Kayıt Ol"> </form> </body> </html> Bu örnekte:
-
value="<?php if(isset($_POST['name'])) echo htmlspecialchars($_POST['name']); ?>": Eğer form daha önce doldurulmuşsa, POST ile gelen değer tekrar gösterilir. Bu, formun yenilenmesi durumunda bile kullanıcıdan alınan verinin kaybolmamasını sağlar. -
htmlspecialchars()fonksiyonu kullanılarak XSS saldırılarına karşı form verileri temizlenir.
1.2. PHP ile Verileri İşleme (register.php)
Form gönderildikten sonra, PHP ile hata kontrolü yapılır ve hata oluştuğunda form tekrar doldurulmuş şekilde gösterilir.
register.php:
<?php $errors = []; if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = trim($_POST['name']); $email = trim($_POST['email']); $password = trim($_POST['password']); // İsim doğrulama if (empty($name)) { $errors[] = "İsim alanı boş olamaz."; } // E-posta doğrulama if (empty($email)) { $errors[] = "E-posta alanı boş olamaz."; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = "Geçerli bir e-posta adresi giriniz."; } // Şifre doğrulama if (empty($password)) { $errors[] = "Şifre alanı boş olamaz."; } // Eğer hata yoksa kayıt işlemi if (count($errors) == 0) { // Veritabanına ekleme işlemi yapılır. echo "Kayıt başarılı!"; } else { // Hata varsa ekrana yazdır foreach ($errors as $error) { echo "<p style='color:red;'>$error</p>"; } } } ?> Bu kodda:
- Form verileri POST ile alınıp kontrol edilir.
- Eğer formda eksik veya hatalı veri varsa, hata mesajları ekrana yazdırılır ve formdaki bilgiler kaybolmadan tekrar gösterilir.
1.3. Textarea Alanında Veri Saklama
Eğer formda bir textarea alanı varsa, verileri şu şekilde saklayabilirsiniz:
<label for="message">Mesaj:</label> <textarea id="message" name="message"> <?php if(isset($_POST['message'])) echo htmlspecialchars($_POST['message']); ?> </textarea> 2. Session (Oturum) ile Verileri Saklama
Daha gelişmiş bir yöntem ise Session kullanarak verileri saklamaktır. Bu, kullanıcı bir sayfadan diğerine geçse bile verilerin kaybolmamasını sağlar.
2.1. Session Kullanarak Form Bilgilerini Saklama
- Oturum başlatma: PHP ile session'ları kullanarak form verilerini geçici olarak saklayabiliriz.
form.php (Session ile form bilgilerini tutma):
<?php session_start(); ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>Kayıt Formu</title> </head> <body> <h1>Kayıt Formu</h1> <form action="register.php" method="post"> <label for="name">İsim:</label> <input type="text" id="name" name="name" value="<?php if(isset($_SESSION['name'])) echo htmlspecialchars($_SESSION['name']); ?>"><br><br> <label for="email">E-posta:</label> <input type="email" id="email" name="email" value="<?php if(isset($_SESSION['email'])) echo htmlspecialchars($_SESSION['email']); ?>"><br><br> <label for="password">Şifre:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="Kayıt Ol"> </form> </body> </html> - register.php (Form bilgilerini session'da saklama):
<?php session_start(); $errors = []; if ($_SERVER["REQUEST_METHOD"] == "POST") { // Form verilerini al $name = trim($_POST['name']); $email = trim($_POST['email']); $password = trim($_POST['password']); // Session'da bilgileri sakla $_SESSION['name'] = $name; $_SESSION['email'] = $email; // İsim doğrulama if (empty($name)) { $errors[] = "İsim alanı boş olamaz."; } // E-posta doğrulama if (empty($email)) { $errors[] = "E-posta alanı boş olamaz."; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = "Geçerli bir e-posta adresi giriniz."; } // Şifre doğrulama if (empty($password)) { $errors[] = "Şifre alanı boş olamaz."; } // Hata yoksa session verilerini temizle if (count($errors) == 0) { echo "Kayıt başarılı!"; session_unset(); // Form başarıyla gönderildiğinde session temizlenir. } else { // Hata varsa ekrana yazdır foreach ($errors as $error) { echo "<p style='color:red;'>$error</p>"; } } } ?> - Bu kodda form bilgileri session'da saklanır. Eğer hata oluşursa form tekrar doldurulduğunda veriler kaybolmadan geri yüklenir.
-
session_unset()ile form başarıyla gönderildiğinde session'daki veriler temizlenir.
3. Sonuç
PHP 8'de form verilerini kontrollerde tutmak, kullanıcı deneyimini artırır ve form bilgilerini kaybetmeyi önler. İki temel yöntem:
- POST verilerini saklama: Aynı sayfada verileri tekrar doldurmak için kullanılır.
- Session kullanımı: Verileri sayfalar arasında taşımak ve kaydetmek için daha güçlü bir yöntemdir.
Bu teknikler sayesinde kullanıcı formları doldururken olası hatalar durumunda veriler kaybolmadan tekrar gösterilebilir.
Bu ders size yardımcı oldu mu? Puan verin!
Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.
Sıkça Sorulan Sorular (SSS)
Bu ders ve konuyla ilgili en çok merak edilenler
Php 8 Form Bilgilerinin Kontrollerde Tutulması dersini öğrenmek için ön koşul var mı?
Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.
Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?
Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.
Takıldığım bir yerde nereden soru sorabilirim?
Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.
Topluluk Yorumları (0)
Ders Hakkında Yorum Yap veya Soru Sor
Henüz yorum yapılmamış. İlk yorumu siz yazın!