07/09/2018, 10:38

Validate E-mail và URL Trong PHP

Ở bài học Form Validation trong PHP các bạn đã được học cách sử dụng form Validation . Bài học này sẽ hướng dẫn các bạn cách sử dụng validate tên , e-mail và URL. Validate Tên Trong PHP Dưới đây là một ví dụ đơn giản để kiểm tra tên của bạn có phải chỉ chứa chữ cái và khoảng trắng ...

Ở bài học Form Validation trong PHP các bạn đã được học cách sử dụng form Validation. Bài học này sẽ hướng dẫn các bạn cách sử dụng validate tên, e-mailURL.

Validate Tên Trong PHP

Dưới đây là một ví dụ đơn giản để kiểm tra tên của bạn có phải chỉ chứa chữ cáikhoảng trắng hay không. Nếu tên của bạn không hợp lệ thì tin nhắn báo lỗi sẽ được gửi về:

    $ten = kiemTra_input($_POST["ten"]);
    if (!preg_match("/^[a-zA-Z ]*$/",$ten)) {
      $ten_loi = "Chỉ được chứa các chữ cái và khoảng trắng"; 
    }

Chú ý: Hàm preg_match() sẽ so sánh một chuỗi với parttern đã được quy định sẵn, và trả về true nếu chuỗi hợp lệ, và false nếu không hợp lệ.

Validate E-mail Trong PHP

Cách đơn giản và an toàn nhất để kiểm tra một địa chỉ email có hợp lệ không là sử dụng hàm filter_var() trong PHP.

Ở ví dụ dưới đây, nếu địa chỉ email không hợp lệ thì tin nhắn báo lỗi sẽ được gửi về:

$email = kiemTra_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "E-mail không hợp lệ"; 
}

Validate URL Trong PHP

Ví dụ dưới đây sẽ kiểm tra một địa chỉ URL có hợp lệ không (biểu thức này cho phép chứa dấu gạch ngang (_)). Nếu địa chỉ không hợp lệ, tin nhắn báo lỗi sẽ được gửi về:

$website = kiemTra_input($_POST["website"]);
if (!preg_match("/(?:(?:https?|ftp)://|www.)[-a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) {
  $website_sai = "Địa chỉ URL không hợp lệ"; 
}

Validate Tên, E-mail và URL

Dưới đây là tập lệnh tổng hợp 3 trường hợp trên:

<?php
// khai báo biến và gán giá trị rỗng
$ten_loi = $email_loi = $gioi_tinh_loi = $website_loi = "";
$ten = $email = $gioi_tinh = $binh_luan = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $ten_loi = "Tên không được để trống";
  } else {
    $ten = kiemTra_input($_POST["ten"]);
    // Kiểm tra liệu tên chỉ bao gồm các chữ cái và khoảng trắng hay không.
    if (!preg_match("/^[a-zA-Z ]*$/",$ten)) {
      $ten_loi = "Tên chỉ chứa các chữ cái và khoảng trắng."; 
    }
  }

  if (empty($_POST["email"])) {
    $email_loi = "Email không được để trống";
  } else {
    $email = kiemTra_input($_POST["email"]);
    //Kiểm tra xem địa chỉ email có hợp lệ không.
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $email_loi = "Email không hợp lệ"; 
    }
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = kiemTra_input($_POST["website"]);
    // Kiểm tra xem URL có hợp lệ hay không.
    if (!preg_match("/(?:(?:https?|ftp)://|www.)[-a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) {
      $websiteErr = "URL không hợp lệ"; 
    }
  }

  if (empty($_POST["binh_luan"])) {
    $binh_luan = "";
  } else {
    $binh_luan = kiemTra_input($_POST["binh_luan"]);
  }

  if (empty($_POST["gioi_tinh"])) {
    $gioi_tinh_loi = "Giới tính không được để trống";
  } else {
    $gioi_tinh = kiemTra_input($_POST["gioi_tinh"]);
  }
}
?>

Chạy Demo

Bài học tiếp theo sẽ hướng dẫn cách ngăn chặn việc các input bị rỗng khi người dùng submit form.

0