เช็คเลขบัตรประชาชน ว่าถูกต้องหรือไม่
หน้าแรก PHP MySQL เกร็ดความรู้ เช็คเลขบัตรประชาชน ว่าถูกต้องหรือไม่
วิธีตรวจสอบรหัสบัตรประชาชน
วิธีตรวจสอบรหัสบัตรประชาชน
เราจะมีวิธีตรวจสอบรหัสบัตรประชาชนอย่างไร...
คงเคยเห็นแบบฟอร์มในการสมัครสมาชิกของหลายๆ
เว็บไซต์บังคับให้กรอกเลขที่บัตรประชาชน เช่น
เว็บขายของ, เว็บประเภทเกมส์ออนไลน์, ฯลฯ
ก็พลันคิดไปว่าต้องตรวจสอบโดยการติดต่อฐานข้อมูล
ของกระทรวงมหาดไทยเลยเหรอนี้
อันที่จริงมันไม่ซับซ้อนอย่างที่คิด ในการตรวจสอบเลขที่บัตรประชาชนนั้น
ทำได้โดยการใช้ Check Digit หรือการตรวจสอบความถูกต้อง
โดยใช้ตัวเลขหลักสุดท้ายใน การตรวจสอบ
สรุปขั้นตอนง่ายๆ ดังนี้นะคะ
1ตัวเลขบนบัตรประชาชนจะมีทั้งหมด 13 หลัก นำมาตรวจสอบได้แก่
เลขใน 12 หลักแรก และเลขตัวสุดท้าย คือตัวหลังสุดเป็นตัวตรวจสอบ ค่ะ
2ตัวอย่างบัตรประชาชน 1-2345-67890-12-9
3วิธีการใช้เลข 1-2345-67890-12 มาคำนวณ และ
เลข 9 เป็นเลขตรวจสอบค่ะ
4เลขทั้งหมด 13 หลัก จาก 1-2345-67890-12-9
ให้นำ 1-2345-67890-12 มาใช้ ดังนี้ค่ะ
(1x13)+(2x12)+(3x11)+(4x10)+(5x9)+(6x8)+(7x7)+(8x6 )+(9x5)+(0x4)+(1x3)+(2x2) = 352
5หา modulation ได้แก่ 13 2 = 11
6นำ 352 มา หารด้วย 11 จะเหลือเศษ 0 (ได้ผลลัพธ์เท่าใดไม่ใช้ ใช้แต่เศษ เท่านั้น)
7นำเลข modulation คือ 11 เป็นตัวตั้ง ลบด้วย 0 หรือ 11 0 =11
8เลขหลักหน่วยที่ได้ คือ 1 ซึ่งจะใช้เลข 1 มาเปรียบเทียบกับบัตรประชาชน
ว่าตรงกันหรือไม่
9จากบัตร 1-2345-67890-12-9 พบว่า เลขลงท้ายของบัตรประชาชน
กับเลขหลักหน่วยที่คำนวณได้ ไม่ตรงกัน
เพราะ เลขบัตรที่ได้มาลงท้ายด้วย 9 แต่เลขคำนวณ ลงท้ายด้วย 1
function siamWEBcity($personID)//เริ่ม function ตรวจสอบ เลขบัตรประชาชน
{
$rev = strrev($personID); // reverse string ขั้นที่ 0 เตรียมตัว
$total = 0;
for($i=1;$i<13;$i++) // ขั้นตอนที่ 1 - เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน
{
$mul = $i +1;
$count = $rev[$i]*$mul; // ขั้นตอนที่ 2 - เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
$total = $total + $count; // ขั้นตอนที่ 3 - เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด
}
$mod = $total % 11; //ขั้นตอนที่ 4 - เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ)
$sub = 11 - $mod; //ขั้นตอนที่ 5 - เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4
$check_digit = $sub % 10; //ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit
if($rev[0] == $check_digit) // ตรวจสอบ ค่าที่ได้ กับ เลขตัวสุดท้ายของ บัตรประจำตัวประชาชน
return true; /// ถ้า ตรงกัน แสดงว่าถูก
else
return false; // ไม่ตรงกันแสดงว่าผิด
} //จบ function ตรวจสอบ เลขบัตรประชาชน
if(isset($_POST['personID'])) {
if(siamWEBcity($_POST['personID'])) { //echo "รหัสถูกต้องครับ";
}
else { echo "<h1><center><br><br>เลขบัตรประจำตัวประชาชน ที่คุณกรอกไม่ถูกต้องค่ะ<br><br>$sportblog_back</center></h1>";exit(); }
}
ขึ้นไปด้านบน
