PHP Series : Validasi Form PHP
Haloo, dalam PHP Series kali ini kita akan mempelajari tentang Validasi pada formulir atau form dengan menggunakan PHP.
Pengertian dan Tujuan Validasi
Validasi adalah memeriksa inputan yang dikirimkan oleh pengguna. Tujuan validasi yaitu menghindari kesalahan data pada form. Dengan adanya validasi, inputan user akan diperiksa sehingga data yang diproses tidak ada kesalahan sebelum disimpan ke database. Ada dua jenis validasi yang tersedia di PHP.
- Validasi Sisi Klien - Validasi dilakukan pada browser web mesin klien.
- Validasi Sisi Server - Setelah dikirimkan oleh data, data telah dikirim ke server dan melakukan pemeriksaan validasi di mesin server.
Aturan Validasi Data Untuk Kolum pada Form
Field | Aturan Validasi |
---|---|
Nama | Harus diisi, terdiri dari huruf dan spasi |
Harus diisi, @ and . | |
Website | Harus diisi, format penulisan website |
Radio | Harus memilih salah satu |
Check Box | Harus ada cek minimal satu |
Drop Down menu | Harus pilih salah satu |
1. Validasi URL
$website = input($_POST["site"]); if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "Invalid URL"; }Sintaks di atas akan memverifikasi apakah URL yang diberikan valid atau tidak. Seharusnya memungkinkan beberapa kata kunci seperti https, ftp, www, a-z, 0-9, dll.
2. Validasi Alamat Email
$email = input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid format and please re-enter valid email"; }Sintaks di atas akan memverifikasi apakah alamat Email yang diberikan sesuai atau tidak. Jika tidak, maka akan menampilkan pesan kesalahan.
Contoh Form :
Berikut adalah contoh form PHP yang menggunakan validasi inputan :<html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <?php error_reporting(0); // define variables and set to empty values $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $class = $course = $subject = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; }else { $name = test_input($_POST["name"]); } 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["course"])) { $course = ""; }else { $course = test_input($_POST["course"]); } if (empty($_POST["class"])) { $class = ""; }else { $class = test_input($_POST["class"]); } if (empty($_POST["gender"])) { $genderErr = "Gender is required"; }else { $gender = test_input($_POST["gender"]); } if (empty($_POST["subject"])) { $subjectErr = "You must select 1 or more"; }else { $subject = $_POST["subject"]; } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>Biodata Mahasiswa</h2> <p><span class = "error">* required field.</span></p> <form method = "POST" action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <table> <tr> <td>Nama:</td> <td><input type = "text" name = "name"> <span class = "error">* <?php echo $nameErr;?></span> </td> </tr> <tr> <td>E-mail: </td> <td><input type = "text" name = "email"> <span class = "error">* <?php echo $emailErr;?></span> </td> </tr> <tr> <td>Kota:</td> <td> <input type = "text" name = "course"> <span class = "error"><?php echo $websiteErr;?></span> </td> </tr> <tr> <td>Alamat:</td> <td> <textarea name = "class" rows = "5" cols = "40"></textarea></td> </tr> <tr> <td>Jenis Kelamin:</td> <td> <input type = "radio" name = "gender" value = "Perempuan">Perempuan <input type = "radio" name = "gender" value = "Laki - Laki">Laki - Laki <span class = "error">* <?php echo $genderErr;?></span> </td> </tr> <tr> <td>Fakultas :</td> <td> <select name = "subject[]" size = "4" multiple> <option value = "Ekonomi">Ekonomi</option> <option value = "Ilmu Komputer">Ilmu Komputer</option> <option value = "Agama Islam">Agama Islam</option> <option value = "Kedokteran">Kedokteran</option> <option value = "Hukum">Hukum</option> <option value = "Psikologi">Psikologi</option> </select> </td> </tr> <tr> <td>Agree</td> <td><input type = "checkbox" name = "checked" value = "1"></td> <?php if(!isset($_POST['checked'])){ ?> <span class = "error">* <?php echo "You must agree to terms";?></span> <?php } ?> </tr> <tr> <td> <input type = "submit" name = "submit" value = "Submit"> </td> </tr> </table> </form> <table border="1" cellpadding="2" cellspacing="0"> <tr> <th>Nama</th> <th>Alamat Email</th> <th>Kota Asal</th> <th>Alamat</th> <th>Jenis Kelamin</th> <th>Fakultas</th> </tr> <tr> <td><?php echo $name; ?></td> <td><?php echo $email; ?></td> <td><?php echo $course; ?></td> <td><?php echo $class; ?></td> <td><?php echo $gender; ?></td> <td><?php for($i = 0; $i < count($subject); $i++) { echo($subject[$i] . " "); } ?></td> </tr> </table> </body> </html>Kode PHP untuk form diatas akan menghasilkan tampilan :