Kali ini kita akan mempelajari cara memvalidasi nama, email, dan URL.
Section Artikel
Kode di bawah ini menunjukkan cara sederhana untuk memeriksa apakah field nama hanya berisi huruf, tanda hubung, apostrof, dan spasi putih. Jika nilai field name tidak valid, maka simpan pesan error:
$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 nilai true jika pola ada dan false sebaliknya.
Cara termudah dan teraman untuk memeriksa apakah alamat email sudah benar adalah dengan menggunakan fungsi PHP filter_var()
.
Pada kode di bawah ini, jika alamat email tidak benar, maka simpan pesan kesalahan:
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
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, maka 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";
}
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"]); } } ?>