Tuesday, October 7, 2014

Membuat Validasi Form dengan PHP

Setelah mengerti cara menangani form dengan action dan method, selanjutnya adalah melakukan validasi terhadap form. Proses validasi form dibutuhkan untuk mengamankan aplikasi dari hack seperti html injection. Melalui proses validasi form diharapkan data yang diinputkan benar-benar data yang valid dan tidak berisi script yang membahayakan.

Prinsip dasar validasi form adalah mengecek input data dari pengguna dengan beberapa tes kemudian membuat pembetulan dengan cara konversi data dan eliminasi data. Jadi fungsi dari proses validasi form adalah untuk memperoleh ketepatan data dan demi keamanan situs.

Contoh proses validasi form dengan PHP

 <!DOCTYPE HTML>   
 <html>  
 <head>  
 <title>Contoh proses validasi form</title>
 </head>  
 <body>   
 <?php  

 // membuat variabel yang diset dengan nilai kosong 
 $nama = $email = $gender = $komentar = $website = "";  

 //mengambil data dari form dengan metode post

 if ($_SERVER["REQUEST_METHOD"] == "POST") {  
   $nama = test_input($_POST["nama"]);  
   $email = test_input($_POST["email"]);  
   $website = test_input($_POST["website"]);  
   $komentar = test_input($_POST["komentar"]);  
   $gender = test_input($_POST["gender"]);  
 }

 //membuat fungsi untuk validasi input form
 function test_input($data) {  
   $data = trim($data);  
   $data = stripslashes($data);  
   $data = htmlspecialchars($data);  
   return $data;  
 }  
 ?>

 <h2>Contoh Validasi Form dengan PHP</h2>  
 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">   
   Name: <input type="text" name="nama">  
   <br><br>  
   E-mail: <input type="text" name="email">  
   <br><br>  
   Website: <input type="text" name="website">  
   <br><br>  
   Comment: <textarea name="komentar" rows="5" cols="40"></textarea>  
   <br><br>  
   Gender:  
   <input type="radio" name="gender" value="perempuan">Perempuan  
   <input type="radio" name="gender" value="laki-laki">Laki-laki  
   <br><br>  
   <input type="submit" name="submit" value="Submit">   
 </form> 
 <?php  
 //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 $gender;  
 ?>  
 </body>  
 </html>  

Pada contoh terdapat beberapa proses validasi dasar untuk form yaitu:
  1. Penggunaan fungsi htmlspecialchars() pada form action untuk melindungi variabel global $_SERVER["PHP_SELF"] dari html injection. Dengan demikian, parameter-parameter ilegal yang disisipkan pada URL akan diubah ke format karakter html. Misal <script> menjadi &lt;/script&gt;
  2. Penggunaan fungsi trim() untuk menghapus karakter yang tidak diperlukan seperti ekstra spasi, tab dan baris baru.
  3. Penggunaan fungsi stripslashes() untuk membuang tanda backslash (/) dari input yang dimasukkan oleh pengguna
  4. Penggunaan fungsi htmlspecialchars() untuk mengubah karakter-karakter khusus html seperti < menjadi &lt; dan > menjadi &gt;
Untuk mempermudah proses validasi terhadap beberapa input form maka fungsi-fungsi diatas dikumpulkan menjadi satu fungsi yang bisa dipanggil dengan satu perintah saja, jadi tidak perlu menulis satu per satu untuk masing-masing input.

Pada contoh dapat dilihat fungsi test_input($data) yang memproses variabel $data dengan tiga fungsi, yaitu trim(), stripslashes() dan htmlspecialchars(). Setelah itu hasil dari fungsi-fungsi tersebut dikembalikan lagi melalui perintah return.

Pada program diatas belum dibuat proses require form yaitu suatu syarat yang mewajibkan satu input form untuk diisi. Akibatnya meskipun form dalam keadaan kosong, script akan tetap dijalankan ketika tombol submit ditekan. Tentang cara membuat sistem reqiure form insyaAllah akan ditulis pada artikel selanjutnya.


Referensi :

0 komentar

Post a Comment