Cara Membuat Validasi Form di PHP

Cara Membuat Validasi Form di PHP

Cara Membuat Validasi Form di PHP - CodePolitan.com
Validasi form berarti memeriksa masukan yang diajukan oleh pengguna. Ada dua jenis validasi form di aplikasi web, diantaranya:
  • Validasi Sisi Client : Validasi dilakukan pada browser web
  • Validasi Sisi Server : Setelah data diterima oleh server, pengecekan validasi data dilakukan oleh program di sisi server
Form validasi sangat diperlukan dalam sebuah aplikasi. Terkadang kita diharuskan membuat sebuah form yang datanya tidak boleh dikosongkan, ataupun input yang format isiannya ditentukan. Jika pengguna tidak memenuhi ketentuan pengisian form maka akan muncul peringatan bahwa pengisian form tersebut masih belum valid dan harus diperbaiki sebelum disubmit kembali.

Langkah-langkah

Dalam pembahasan tutorial validasi form ini kita buat file php dengan nama form.php untuk membuat sebuah form yang harus di isi.
form.php
 <!DOCTYPE HTML>  
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>  

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Only letters and white space allowed"; 
    }
  }

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Invalid email format"; 
    }
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
    // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
      $websiteErr = "Invalid URL"; 
    }
  }

  if (empty($_POST["comment"])) {
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }

  if (empty($_POST["gender"])) {
    $genderErr = "Gender is required";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
  Name: <input type="text" name="name" value="<?php echo $name;?>">
  <span class="error">* <?php echo $nameErr;?></span>
  <br><br>
  E-mail: <input type="text" name="email" value="<?php echo $email;?>">
  <span class="error">* <?php echo $emailErr;?></span>
  <br><br>
  Website: <input type="text" name="website" value="<?php echo $website;?>">
  <span class="error"><?php echo $websiteErr;?></span>
  <br><br>
  Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
  <br><br>
  Gender:
  <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?> value="female">Female
  <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?> value="male">Male
  <span class="error">* <?php echo $genderErr;?></span>
  <br><br>
  <input type="submit" name="submit" value="Submit">  
</form>

<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>

</body>
</html>

Penjelasan Kode

1. Cek data field

Validasi ini diterapkan sebelum melakukan jenis validasi isian form lainnya (validasi format nama, format email, dan validasi format website), terkecuali bila kita membolehkan form input untuk dikosongkan.
  • Cek dahulu apakah data sudah disubmit dari form
    if ($_SERVER["REQUEST_METHOD"] == "POST") 
    {
    // proses jika sudah submit form field
    }
  • Jika terjadi submit form, langkah selanjutnya ambil data field dari form tersebut. Jika isi dari field kosong, tampilkan pesan error. Jika ada isinya, lakukan validasi.
    if (empty($_POST["namafield"])) {
    $pesanerror = "Tulis pesan bahwa field harus diisi";
    } else {
    // Proses validasi form field 
    }
    }

2. Cara Validasi input Nama

Mungkin nama hanya terdiri dari Alphabet (a-z) atau (A-Z) satu atau lebih spasi. Diluar itu (misal ada penyisipan angka atau simbol) maka dipastikan format pengisian salah. Berikut adalah kode untuk validasi nama menggunakan fungsi preg_match:
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Hanya Huruf dan spasi yang diizinkan";
}       

3. Cara Validasi Email

Proses validasi email dilakukan dengan memanfaatkan fungsi filter_var() dan menggunakan variabel terdefinisi FILTER_VALIDATE_EMAIL yang berfungsi mengecek apakah format pengisian email sudah benar atau belum. Kode untuk validasi email adalah sebagai berikut:
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $emailErr = "Format email salah";
}

4. Cara Validasi website

Dalam Format penulisan URL yang benar itu protokol://nama_host/path/nama_file. Diluar itu maka dipastikan format pengisian salah. Proses validasi website menggunakan fungsi preg_match. Berikut kode untuk validasi alamat website:
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
       $websiteErr = "URL salah";
}
Di dalam tutorial validasi form PHP ini kita telah mempelajari cara menvalidasi nilai inputan form. Namun apa yang telah kita pelajari disini hanya sebagian kecil dari proses validasi yang sebenarnya harus dilakukan. Kamu dapat mengembangkan proses validasi untuk tipe isian lainnya sesuai kebutuhan seperti contoh di atas.

Komentar

Postingan populer dari blog ini

Login, Session, dan Logout

Cara Membuat File Setup / Installer Aplikasi Sendiri dengan Inno Setup Compiler