Formulir PHP - Validasi Email dan URL
Bab ini menunjukkan cara memvalidasi nama, email, dan URL.
PHP - Validasi Nama
Kode di bawah ini menunjukkan cara sederhana untuk memeriksa apakah bidang nama hanya berisi huruf, tanda hubung, apostrof, dan spasi. Jika nilai bidang nama tidak valid, maka simpan pesan kesalahan:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
Fungsi preg_match() mencari string untuk pola, mengembalikan true jika pola ada, dan false sebaliknya.
PHP - Validasi Email
Cara termudah dan teraman untuk memeriksa apakah alamat email sudah terformat dengan baik adalah dengan menggunakan fungsi filter_var() PHP.
Pada kode di bawah ini, jika alamat email tidak tersusun dengan baik, maka simpan pesan kesalahan:
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
PHP - Validasi URL
Kode di bawah ini menunjukkan cara untuk memeriksa apakah sintaks alamat URL valid (ekspresi reguler ini juga memungkinkan tanda hubung di URL). Jika sintaks alamat URL tidak valid, simpan pesan kesalahan:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
PHP - Validasi Nama, Email, dan URL
Sekarang, skripnya terlihat seperti ini:
Contoh
<?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"]);
}
}
?>
Langkah selanjutnya adalah menunjukkan bagaimana mencegah formulir mengosongkan semua bidang input saat pengguna mengirimkan formulir.