Wednesday, October 8, 2014

Membuat Required Form dengan PHP

Dalam artikel sebelumnya ditulis tentang cara validasi form. Namun belum ada penanganan jika salah satu atau beberapa atau bahkan semua field pada form dalam keadaan kosong, script akan tetap dijalankan. Sepintas terlihat tidak terlalu bermasalah karena contoh script hanya menampilkan saja, jadi seolah-olah tampilannya sama, tetap kosong.

Namun ini akan menjadi masalah jika nantinya input data dari form akan di simpan dalam tabel sebuah database. Tentunya akan menyimpan record dengan data kosong yang menjadikan data tersebut tidak valid. Sebagai contoh jika kita menyimpan data komentar saja tanpa nama atau tanpa alamat email dan tanpa jenis kelamin, maka data tersebut menjadi tidak berguna.

Untuk itu kita harus membuat tanda bahwa sebuah field harus diisi dan membuat penanganan errornya jika field tidak diisi. Dalam hal ini kita memerlukan sistem required form, yaitu sistem yang membuat user harus mengisi sebuah elemen form dan menampilkan error jika elemen tersebut tidak diisi. Dan selanjutnya script untuk menyimpan data dari form tidak dijalankan

Berikut ini beberapa langkah membuat required form dengan PHP :

  1. Tentukan elemen/field mana yang harus diisi dan dan elemen/field mana yang boleh tidak diisi.
  2. Beri tanda untuk elemen/field yang harus diisi, misal dengan tanda bintang (*) lalu diberi note kalau tanda bintang (*) maksudnya harus diisi.
  3. Buat variabel untuk menangani error, misal untuk menampilkan pesan error.
  4. Buat penyeleksian kondisi yang mengecek elemen/field pada form diisi atau tidak.
  5. Tampilkan variabel tersebut disamping elemen form yang belum diisi jika tombol submit ditekan.
  6. Buat validasi inputan data form seperti nama harus mengandung huruf dan spasi saja tidak boleh angka, email harus mengandung karakter @ dan dot(.) lalu website harus berisi URL yang valid, misal httl://website.com

Contoh membuat sistem required form dengan PHP:

 <?php   
  // membuat variabel error dan diset kosong   
  $namaErr = $emailErr = $jkErr = $websiteErr = "";   
  //membuat variabel untuk menampung inputan dari form   
  $nama = $email = $jk = $komentar = $website = "";   
  if ($_SERVER["REQUEST_METHOD"] == "POST") {   
  if (empty($_POST["nama"])) {   
   $namaErr = "Nama harus diisi !";   
  } else {   
   $nama = test_input($_POST["nama"]);   
  }   
  if (empty($_POST["email"])) {   
   $emailErr = "Email harus diisi !";   
  } else {   
   $email = test_input($_POST["email"]);   
  }   
  if (empty($_POST["website"])) {   
   $websiteErr = "Website harus diisi !";   
  } else {   
   $website = test_input($_POST["website"]);   
  }   
  if (empty($_POST["komentar"])) {   
   $komentar = "";   
  } else {   
   $komentar = test_input($_POST["komentar"]);   
  }   
  if (empty($_POST["jk"])) {   
   $jkErr = "Jenis kelamin belum dipilih !";   
  } else {   
   $jk = test_input($_POST["jk"]);   
  }   
  }  
  //membuat fungsi untuk validasi input form  
  function test_input($data) {   
   $data = trim($data);   
   $data = stripslashes($data);   
   $data = htmlspecialchars($data);   
   return $data;   
  }    
  ?>   
  <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">   
  nama: <input type="text" name="nama">   
  <span class="error">* <?php echo $namaErr;?></span>   
  <br><br>   
  E-mail:   
  <input type="text" name="email">   
  <span class="error">* <?php echo $emailErr;?></span>   
  <br><br>   
  Website:   
  <input type="text" name="website">   
  <span class="error"><?php echo $websiteErr;?></span>   
  <br><br>   
  <label>komentar: <textarea name="komentar" rows="5" cols="40"></textarea>   
  <br><br>   
  Jenis Kelamin:   
  <input type="radio" name="jk" value="perempuan">Perempuan   
  <input type="radio" name="jk" value="laki-laki">Laki-laki   
  <span class="error">* <?php echo $jkErr;?></span>   
  <br><br>   
  <input type="submit" name="submit" value="Submit">    
  </form>   
  <?  
  //menampilkan hasil dari inputan form  
  echo "<h2>Input yang anda masukkan:</h2>";  
  echo $nama;   
  echo "<br>";   
  echo $email;   
  echo "<br>";   
  echo $website;   
  echo "<br>";   
  echo $komentar;   
  echo "<br>";   
  echo $jk;   
  ?>   

Penjelasan Script :

Pada contoh diatas menggunakan script yang sama seperti pada tulisan sebelumnya. Field yang ditentukan harus diisi (tidak boleh kosong) adalah Nama, Email, Website dan Jenis Kelamin. Untuk menandai beberapa elemen form tersebut ditambahkan tanda bintang (*) dibelakangnya kemudian diikuti dengan tampilan error jika tidak diisi.

Saat tombol submit ditekan, data yang dipos-kan oleh form dicek lebih dahulu dengan perintah IF(empty(variabel)). Jika kosong akan ditulis pesan error pada variabel error dan jika sudah diisi akan dilanjut dengan pengambilan data. Pada proses ini tetap digunakan fungsi test_input() untuk validasi form.

Untuk validasi khusus pada masing-masing data tiap elemen form insyaAllah akan ditulis pada artikel selanjutnya.

Referensi :

0 komentar

Post a Comment