[row]
[col span=”1/1″]
[wp_ad_camp_1]
[/col]
[/row]
[row]
[col span=”1/2″]
Validasi form adalah proses pengecekan cara pengisian form sebelum form kita submit. Hal ini bertujuan agar data yang terkumpul lebih valid.

kali ini kita akan belajar cara memvalidasi form denganmenggunakan PHP. Ada 3 jenis validasi yang akan kita pelajari disini yaitu:

  1. Mengecek Field yang wajib diisi. Jika belum diisi akan ditampilkan pesan.
  2. Mengecek Format isian field email. Apakah sesuai atau tidak
  3. Mengecek format isian nama Lengkap.

[/col]
[col span=”1/2″]
[wp_ad_camp_2]
[/col]
[/row]

1. Cara Check Apakah Field yang wajib diisi sudah di isi

Validasi ini diterapkan juga sebelum melakukan jenis validasi isian form (validasi format email [2] dan validasi nama lengkap [3] ).

Algoritma yang digunakan adalah sebagai berikut :
[row]
[col span=”1/1″]
[wp_ad_camp_1]
[/col]
[/row]
1. Check apakah telah ada submit data field
Pengecekan bisa dilakukan melalui baris perintah berikut :

if ($_SERVER["REQUEST_METHOD"] == "POST") {
...
proses yg dilakukan jika sudah submit form field
...
}

2. Jika telah terjadi submit form field, langkah selanjutnya ambil data field tersebut. Jika isi dari field kosong, set pesan error. Jika ada isinya, lakukan validasi.

 if (empty($_POST["namafield"])) {
     $pesanerror = "Tulis jenis kesalahan disini";
   } else {
    // Proses validasi form field 
     }
   }

 

2. 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. Source code untuk validasi email adalah sebagai berikut:

 

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $emailErr = "format email tidak sah";
     }

 

3. Validasi isian Nama Lengkap

Secara Logika, nama hanya mungkin terdiri dari Alphabet (a-z) atau (A-Z) dan satu atau lebih spasi. Diluar itu (misal ada penyisipan angka atau simbol) maka dipastikan format pengisian salah. Algoritma ini bisa kita gunakan dengan memanfaatkan fungsi preg_match. Source Codenya adalah sebagai berikut:

 if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "Hanya Alphabet dan spasi yg diizinkan";
     }

Penggunaan formatĀ  regular expression seperti /^[a-zA-Z ]*$/ bisa mengacu pada artikel regular expression wikipedia atau bisa juga di http://www.regular-expressions.info/

Source code lengkap untuk Validasi Form adalah sebagai berikut:

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

[row]
[col span=”1/1″]
[wp_ad_camp_2]
[/col]
[/row]
DEMO

Incoming search terms:

(Visited 2.552 times, 14 visits today)