Cara Membuat Validasi Form di PHP
Cara Membuat Validasi Form di PHP
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
Posting Komentar