PHP – Submit Edilen Form Verilerini Korumak

  • 7 Ekim, 2016
  • PHP
Merhaba arkadaslar, PHP'de formlarla ilgili çok sık yaşanan bir problemin bir çözüm yolunu anlatacağım bugün. Öncelikle izlemek isteyenler için videoyu koyuyorum buraya. Beğenirseniz Youtube'da beğenmeyi ve kanala abone olmayı unutmayın lütfen. Devam edelim. Bu problemden bahsedeyim önce daha sonra da neden çözmemiz gerektiğinden. Bir örnekle açıklamaya çalışayım. Bir formunuz olduğunu düşünelim. Burada kullanıcıdan bilgilerini ve size iletmek istediği mesajı alıyorsunuz ve bütün alanları doldurmak zorunlu diyelim. Kullanıcımız yanlışlıkla bir alanı doldurmayı unuttu ve çok da uzun bir mesaj yazmıştı size. Formu post ettiği zaman formdaki bütün elemanların değerleri sıfırlanacak. Bunda hepimiz hemfikiriz. Ama bunun yanı sıra bir de hatamız olacak. Kullanıcı tüm form elemanları doldurmadığı için siz gerekli işlemleri yapmayacaksınız ve kullanıcımız da dolayısıyla forma yazdığı verileri tekrar yazmak zorunda olacak. Bu durum kullanıcının sinirlerini oldukça bozan bir durum olduğu için developerlar olarak bizim görevimiz de kullanıcılarımıza bu işkenceyi yaşatmamak. Şimdi hemen olayın mantığını anlatayım. Kullanıcımızdan aldığımız verileri saklamak istiyoruz, yani bir diğer deyişle post ettiğimiz verileri tekrar form elemanlarına value olarak vermek istiyoruz. Evet şu an, tam olarak şu an kafanızda şimşekler çakmaya başladı, hissediyorum :D Evet aynen düşündüğünüz gibi, POST ile aldığımız verileri aynen form elemanlarımıza value olarak atıyoruz. Hemen bir örnek verelim: [code lang="php"] <input type="text" name="email" value="<?php echo isset($_POST["email"]) ? $_POST["email"] : null; ?>"> [/code] Mantık aynen böyle, normalde isset falan kullanmamıza da gerek yok echo @$_POST["email"] yazmamız yeterli ama biz yine de bu şekilde yapmayı tercih edelim :D Bu tek bir satırdan anladığınızı varsayıyorum ama yine de videoda yazdığım kodları aşağıya atayım, bir de onu inceleyin. [code lang="php"] <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style media="screen"> body { font-size:16px; font-family:Arial; } form { width:750px; margin:50px auto; } form label, form input, form textarea { display:block; margin:10px 0px; } </style> <title></title> </head> <body> <?php if(@$_POST) { $ad = $_POST["ad"]; $soyad = $_POST["soyad"]; $email = $_POST["email"]; $mesaj = $_POST["mesaj"]; if($ad && $soyad && $email && $mesaj) { echo "Mesajiniz Gonderildi"; unset($_POST); }else { echo "Lutfen tum alanlari doldurun"; } } ?> <form action="" method="post"> <label> Adiniz: <input type="text" name="ad" value="<?php echo isset($_POST["ad"]) ? @$ad : null; ?>"> </label> <label> Soyadiniz: <input type="text" name="soyad" value="<?php echo isset($_POST["soyad"]) ? @$soyad : null; ?>"> </label> <label> Email Adresiniz: <input type="text" name="email" value="<?php echo isset($_POST["email"]) ? @$email : null; ?>"> </label> <label> Mesajiniz: <textarea name="mesaj" rows="8" cols="40"><?php echo isset($_POST["mesaj"]) ? @$mesaj : null; ?></textarea> </label> <label> <button type="submit">Gonder</button> </label> </form> </body> </html> [/code] Kodları inceledikçe zaten anlayacağınızı varsayarak bu dersi de burda bitiriyorum. Herkese iyi çalışmalar. Önemli Not: Ders işinize yaradıysa aşağıdaki "Thank You" butonuna basarak teşekkür edebilirsiniz :)

2 Yorum

  1. Emre Musaoğlu
    Yanıtla

    merhaba hocam kolay gelsin videolarınızı izledim çok başarılı, benim aklımda sanalkurs.net gibi bir site yapmak var ama sırf tasarım üzerine bu konuda bana yardım edebilirmisiniz php bilmediğimden önüm bu konuda çok kapalı ve zor.

      • Mustafa Zahid Efe
        Yanıtla

        Merhabalar, oncelikle tesekkur ederim. Bu sene universite sinavina hazirlandigim icin maalesef sadece cektigim derslerle yardimci olabilirim. Onun disinda pek mumkun degil yardimci olmam.

Yorum Bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir