본문으로 건너뛰기

เนื้อหาภาษาไทย / 태국어 콘텐츠

시스템 가이드 검수 완료된 콘텐츠

Data Validation: การตรวจสอบข้อมูลเบื้องต้น

บทความนี้กล่าวถึงความสำคัญของการตรวจสอบข้อมูล (Data Validation) เพื่อให้มั่นใจในความถูกต้องและความปลอดภัยของข้อมูลในระบบ โดยเน้นการตรวจสอบประเภทข้อมูลและความยาว...

Data Validation: การตรวจสอบข้อมูลเบื้องต้น

ในบทเรียนที่แล้ว เราได้เรียนรู้เกี่ยวกับการจัดการ Transaction ด้วย PDO ซึ่งเป็นส่วนสำคัญในการรักษาความถูกต้องของข้อมูลในฐานข้อมูล ในบทนี้ เราจะมาเรียนรู้เกี่ยวกับการตรวจสอบข้อมูล (Data Validation) ซึ่งเป็นขั้นตอนสำคัญในการป้องกันข้อมูลที่ไม่ถูกต้องหรือไม่พึงประสงค์เข้าสู่ระบบของเรา การตรวจสอบข้อมูลจะช่วยให้ระบบของเรามีความน่าเชื่อถือและปลอดภัยมากยิ่งขึ้น

การตรวจสอบข้อมูลเบื้องต้นที่เราจะพูดถึงในบทนี้ เน้นไปที่การตรวจสอบประเภทข้อมูลและความยาวของข้อมูล โดยเราจะใช้ฟังก์ชันพื้นฐานของ PHP เช่น is_numeric(), strlen() และ Regular Expression เบื้องต้น

ทำไมต้องตรวจสอบข้อมูล?

การตรวจสอบข้อมูลมีความสำคัญอย่างยิ่งด้วยเหตุผลหลายประการ:

  • ความถูกต้องของข้อมูล: ทำให้มั่นใจว่าข้อมูลที่จัดเก็บในฐานข้อมูลเป็นไปตามรูปแบบและข้อกำหนดที่กำหนดไว้
  • ความปลอดภัย: ป้องกันการโจมตีผ่านช่องโหว่ต่างๆ เช่น SQL Injection โดยการตรวจสอบและทำความสะอาดข้อมูลที่ผู้ใช้ป้อนเข้ามา
  • ประสบการณ์ผู้ใช้: ช่วยให้ผู้ใช้ได้รับประสบการณ์ที่ดี โดยการแจ้งข้อผิดพลาดให้ผู้ใช้ทราบทันที หากข้อมูลที่ป้อนไม่ถูกต้อง

การใช้ is_numeric()

is_numeric() เป็นฟังก์ชันที่ใช้ตรวจสอบว่าตัวแปรเป็นตัวเลขหรือไม่ ฟังก์ชันนี้จะคืนค่า TRUE หากตัวแปรเป็นตัวเลข (integer หรือ float) และคืนค่า FALSE หากไม่ใช่

<?php

$age = $_POST['age'];

if (is_numeric($age)) {
  echo "อายุของคุณคือ: " . $age;
} else {
  echo "กรุณากรอกอายุเป็นตัวเลข";
}

?>

คำอธิบาย:

  • เราสมมติว่าเราได้รับข้อมูลอายุจากฟอร์มผ่าน $_POST['age']
  • เราใช้ is_numeric() เพื่อตรวจสอบว่าค่าที่ได้รับเป็นตัวเลขหรือไม่
  • หากเป็นตัวเลข เราจะแสดงอายุ หากไม่ใช่ เราจะแสดงข้อความแจ้งเตือน

ข้อควรระวัง: is_numeric() จะคืนค่า TRUE สำหรับ string ที่เป็นตัวเลขด้วย เช่น "123" หรือ "3.14" ถ้าต้องการตรวจสอบว่าเป็น integer จริงๆ ควรใช้ is_int() แทน

การใช้ strlen()

strlen() เป็นฟังก์ชันที่ใช้หาความยาวของ string (จำนวนตัวอักษร) ฟังก์ชันนี้จะคืนค่าเป็น integer ซึ่งเป็นจำนวนตัวอักษรใน string

<?php

$username = $_POST['username'];

if (strlen($username) >= 5 && strlen($username) <= 20) {
  echo "ชื่อผู้ใช้ของคุณคือ: " . $username;
} else {
  echo "ชื่อผู้ใช้ต้องมีความยาวระหว่าง 5 ถึง 20 ตัวอักษร";
}

?>

คำอธิบาย:

  • เราสมมติว่าเราได้รับข้อมูลชื่อผู้ใช้จากฟอร์มผ่าน $_POST['username']
  • เราใช้ strlen() เพื่อตรวจสอบความยาวของชื่อผู้ใช้
  • หากความยาวอยู่ระหว่าง 5 ถึง 20 ตัวอักษร เราจะแสดงชื่อผู้ใช้ หากไม่ใช่ เราจะแสดงข้อความแจ้งเตือน

Regular Expression เบื้องต้น

Regular Expression (RegEx) เป็นรูปแบบที่ใช้ในการจับคู่ string ที่มีรูปแบบเฉพาะ Regular Expression มีประโยชน์อย่างมากในการตรวจสอบข้อมูลที่มีรูปแบบที่ซับซ้อน เช่น อีเมล เบอร์โทรศัพท์ หรือรหัสไปรษณีย์

ในบทนี้ เราจะพูดถึง Regular Expression เบื้องต้น โดยใช้ฟังก์ชัน preg_match() ซึ่งเป็นฟังก์ชันที่ใช้ตรวจสอบว่า string ตรงกับรูปแบบ Regular Expression ที่กำหนดหรือไม่

<?php

$email = $_POST['email'];

// Regular Expression สำหรับตรวจสอบรูปแบบอีเมล
$pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/";

if (preg_match($pattern, $email)) {
  echo "อีเมลของคุณคือ: " . $email;
} else {
  echo "รูปแบบอีเมลไม่ถูกต้อง";
}

?>

คำอธิบาย:

  • เราสมมติว่าเราได้รับข้อมูลอีเมลจากฟอร์มผ่าน $_POST['email']
  • เรากำหนด Regular Expression ในตัวแปร $pattern เพื่อตรวจสอบรูปแบบอีเมล
  • เราใช้ preg_match() เพื่อตรวจสอบว่าอีเมลตรงกับรูปแบบ Regular Expression ที่กำหนดหรือไม่
  • หากตรงกัน เราจะแสดงอีเมล หากไม่ตรงกัน เราจะแสดงข้อความแจ้งเตือน

คำอธิบาย Regular Expression:

  • ^: เริ่มต้น string
  • [a-zA-Z0-9._%+-]+: ตัวอักษร a-z, A-Z, 0-9, จุด, ขีดล่าง, เปอร์เซ็นต์, บวก, หรือขีด (อย่างน้อยหนึ่งตัว)
  • @: เครื่องหมาย @
  • [a-zA-Z0-9.-]+: ตัวอักษร a-z, A-Z, 0-9, จุด, หรือขีด (อย่างน้อยหนึ่งตัว)
  • \.: จุด (ต้อง escape ด้วย backslash)
  • [a-zA-Z]{2,}: ตัวอักษร a-z หรือ A-Z (อย่างน้อยสองตัว)
  • $: สิ้นสุด string

ตัวอย่าง Regular Expression อื่นๆ:

  • เบอร์โทรศัพท์ (ประเทศไทย): /^[0][0-9]{8,9}$/
  • รหัสไปรษณีย์ (ประเทศไทย): /^[0-9]{5}$/
  • ตัวอักษรภาษาอังกฤษเท่านั้น: /^[a-zA-Z]+$/

สรุป

ในบทนี้ เราได้เรียนรู้เกี่ยวกับการตรวจสอบข้อมูลเบื้องต้น โดยใช้ฟังก์ชัน is_numeric(), strlen() และ Regular Expression เบื้องต้น การตรวจสอบข้อมูลเป็นขั้นตอนสำคัญในการสร้างระบบที่น่าเชื่อถือและปลอดภัย การใช้ฟังก์ชันเหล่านี้จะช่วยให้เราสามารถตรวจสอบประเภทข้อมูลและความยาวของข้อมูลได้อย่างมีประสิทธิภาพ

ในบทเรียนถัดไป เราจะเรียนรู้เกี่ยวกับการทำความสะอาดข้อมูล (Data Sanitization) ด้วยฟังก์ชัน filter_var() ซึ่งเป็นอีกขั้นตอนสำคัญในการป้องกันข้อมูลที่ไม่ถูกต้องหรือไม่พึงประสงค์เข้าสู่ระบบของเรา

Office.in.th Custom Service

이 구조를 바탕으로 시스템을 개발하거나 맞춤 변경하고 싶으신가요?

Office.in.th는 엔터프라이즈 웹 애플리케이션, API 연동, 공공/민간 업무 관리 시스템을 설계·개발하며 장기 지원을 제공합니다.

소프트웨어 개발 서비스 보기