square-rightValidate E-mail and URL

พีรดา เอี้ยวสุวรรณ 640710058

Validate คือ การตรวจสอบความถูกต้องของข้อมูลที่ได้รับผ่านแบบฟอร์ม เมื่อทำการกรอกข้อมูลจะมีการตรวจสอบว่าข้อมูลนั้นตรงตามที่ต้องการหรือไม่ หากพบว่าไม่ตรงตามเงื่อนไขจะทำการแจ้งเตือนกลับไปยังผู้ใช้งาน ในที่นี้เราจะกล่าวถึงการตรวจสอบในรูปแบบของ E-mail และ URL

โดยหลักแล้ววิธีที่ใช้ในการตรวจสอบมีดังนี้

  • Regular Expressions (RegEx) เป็นการกำหนดรูปแบบหรือเงื่อนไขในการนำไปค้นหาและตรวจสอบข้อความ

  • ฟังก์ชัน filter_var( ) ใช้สำหรับกรองและตรวจสอบความถูกต้องของข้อมูล โดยใช้ร่วมกับฟิลเตอร์ FILTER_VALIDATE_URL , FILTER_VALIDATE_EMAIL เพื่อกรองตัวแปรโดยเฉพาะ

  • ฟังก์ชัน preg_match( ) ใช้ตรวจสอบและจับคู่ว่ามีข้อความที่กำหนดไว้โดย RegEx หรือไม่

Validate Name

ในโค้ดตัวอย่างเป็นการตรวจสอบว่าฟิลด์ name จะรับค่าเฉพาะตัวอักษร , เครื่องหมายยัติภาค , เครื่องหมายอัญประกาศ และช่องว่างเท่านั้น หากไม่ใช่จะทำการเก็บข้อความแสดงความผิดพลาดไว้ในตัวแปร ซึ่งอาจจะแสดงให้ผู้ใช้เห็นเพื่อแจ้งว่าข้อมูลที่ได้รับมาไม่ถูกต้อง

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
  $nameErr = "Only letters and white space allowed";
}
circle-info

preg_match( ) เป็นการค้นหาในรูปแบบ string ถ้าตรงกับรูปแบบที่กำหนดจะคืนค่า true และคืนค่า false หากไม่ตรงกับรูปแบบที่กำหนดไว้

Validate E-mail

ในการตรวจสอบ E-mail นิยมใช้ฟังก์ชัน filter_var ในการตรวจสอบและทำความสะอาดข้อมูลต่าง ๆ เพราะสะดวกและใช้งานง่าย เนื่องจากถูกออกแบบมาเพื่อกรองและตรวจสอบข้อมูล

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "Invalid email format";
}
circle-info

filter_var( ) จะช่วยกรองและตรวจสอบข้อมูลด้วยตัวกรองที่ระบุ

Validate URL

โค้ดตัวอย่างเป็นการตรวจสอบ URL ของเว็บไซต์ที่ผู้ใช้กรอกมาผ่านแบบฟอร์ม หาก URL ไม่ถูกต้องจะแสดงข้อความแจ้งเตือนไปยังผู้ใช้

ตัวอย่าง

เปรียบเทียบกับภาษาอื่น

  • Java - ใช้ Regular Expressions (Regex เช่น Matcher class , Pattern class) สำหรับการตรวจสอบและระบุข้อผิดพลาด

  • C - ใช้ Regex เพราะไม่มีฟังก์ชันหรือไลบรารีโดยเฉพาะสำหรับตรวจสอบ

  • Python - ใช้ Regex และ Library validators

  • JavaScript - ใช้ RegExp และ Library validator

Slide

Reference

Last updated