PHP – Submit Edilen Form Verilerini Korumak

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 😀 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:

<input type="text" name="email" value="<?php echo isset($_POST["email"]) ? $_POST["email"] : null; ?>">

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 😀

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.

<!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>

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 🙂

PHP Mustafa Zahid Efe 2 yorum