Home » PHP » Form URL/E-mail di PHP : Kode dan Contohnya

Form URL/E-mail di PHP : Kode dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Kali ini kita akan mempelajari cara memvalidasi nama, email, dan URL.

PHP – Validasi Nama

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.

PHP – Validasi E-mail

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";
}

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, 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";
}

PHP – Validasi Nama, E-mail, 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"]);
  }
}
?>

You may also like