EthaiDesign Community  

Go Back   EthaiDesign Community > Developer Forums > PHP Developers

Reply
 
LinkBack Thread Tools
Old 24-01-2009, 12:46 AM   #1
HotDog
 
admin's Avatar
 
เป็นสมาชิกเมื่อ: Jan 2009
ที่อยู่: Bangkok
โพส: 167
Icon11 เขียน PHP เช็คเลขบัตรประชาชน ว่าถูกต้องหรือไม่

ปกติแล้วก็มีเว็บสำหรับเช็คหมายเลขบัตรประชาชน.. ตรวจสอบโดยใช้ webservice ของกรมสรรพากร (เช็คได้ถูกต้อง 100%)
http://www.thainaturecure.com/PIN/PIN.php

หรือถ้าต้องการเช็คในขั้นต้น โดยใช้ php ก็ตามด้านล่างนี้เลยคับ เป็นหารเช็คตามสูตร

###======================รับค่าจากฟอร์ม==============###
Code:
$group_1=$_POST['group_1']; // หมายเลขกลุ่มที่ 1 ( มี1ตัว )
$group_2=$_POST['group_2']; // หมายเลขกลุ่มที่ 2 ( มี4ตัว )
$group_3=$_POST['group_3']; // หมายเลขกลุ่มที่ 3 ( มี5ตัว )
$group_4=$_POST['group_4']; // หมายเลขกลุ่มที่ 4 ( มี2ตัว )
$group_5=$_POST['group_5']; // หมายเลขกลุ่มที่ 5 ( มี1ตัว ) หลักนี้เอาไว้เป็น Check Digit
### =================== นำค่าที่ได้จากฟอร์มมาแยกสตริงค์ ==============###
Code:
$num1=$group_1;
$num2=substr("$group_2",0,1); // ดึงเอาเลขตัวแรก ของกลุ่มที่สองออกมา
$num3=substr("$group_2",1,1); // ดึงเอาเลขตัวที่สอง ของกลุ่มที่สองออกมา
$num4=substr("$group_2",2,1); // ดึงเอาเลขตัวที่สาม ของกลุ่มที่สองออกมา
$num5=substr("$group_2",3,1); // ดึงเอาเลขตัวที่สี่ ของกลุ่มที่สองออกมา
$num6=substr("$group_3",0,1); // ดึงเอาเลขตัวแรก ของกลุ่มที่สามออกมา
$num7=substr("$group_3",1,1); // ดึงเอาเลขตัวที่สอง ของกลุ่มที่สามออกมา
$num8=substr("$group_3",2,1); // ดึงเอาเลขตัวที่สาม ของกลุ่มที่สามออกมา
$num9=substr("$group_3",3,1); // ดึงเอาเลขตัวที่สี่ ของกลุ่มที่สามออกมา
$num10=substr("$group_3",4,1); // ดึงเอาเลขตัวที่5 ของกลุ่มที่สามออกมา
$num11=substr("$group_3",0,1); // ดึงเอาเลขตัวแรก ของกลุ่มที่สี่ออกมา
$num12=substr("$group_2",1,1); // ดึงเอาเลขตัวที่สอง ของกลุ่มที่สี่ออกมา
$num13=$group_5;
### ==== เริ่มต้นคำนวณ Step1 : เอาเลข 12 หลักมาคูณกับเลขประจำหลัก ====###
Code:
$cal_num1=$num1*13;
$cal_num2=$num2*12;
$cal_num3=$num3*11;
$cal_num4=$num4*10;
$cal_num5=$num5*9;
$cal_num6=$num6*8;
$cal_num7=$num7*7;
$cal_num8=$num8*6;
$cal_num9=$num9*5;
$cal_num10=$num10*4;
$cal_num11=$num11*3;
$cal_num12=$num12*2;
### ==== Step2 : เอาเอาผลลัพธ์ที่ได้ในการคูณแต่ละครั้งมาบวกกัน ====###
Code:
$cal_sum=$cal_num1+$cal_num2+$cal_num3+$cal_num4+$cal_num5+$cal_num6+$cal_num7+$cal_num8+$cal_num9+$cal_num10+$cal_num11+$cal_num12;
### ==== Step3 : นำผลลัพธ์จาก Step2 มา Mod ด้วย 11 ====###
Code:
$cal_mod=$cal_sum%11;
### ==== Final เอา 11 ตั้งแล้วลบด้วย ค่าที่ได้จากการ Mod ( Step3) ====###
Code:
$cal_2=11-$cal_mod;


if ($group_1<>"" || $group_1<>"" || $group_1<>"" || $group_1<>"" || $group_1<>"" ) {

if ($cal_2==$num13) {
echo "หมายเลขบัตรประชาชนนี้ถูกต้อง";
} else {
echo "หมายเลขบัตรประชาชนนี้ไม่ถูกต้อง";
}
}

?>
นำโค้ดที่ได้ไปเซฟเป็น ไฟล์ชื่อ index.php
สงสัยตรงไหน MSN: four_chong@hotmail.com

ขอบคุณบทความดี ๆ จาก
http://www.mindphp.com
__________________
Ethaidesign.com
The Communities Graphic & Developer free forums.

admin is offline   Reply With Quote
Old 14-06-2009, 07:43 PM   #2
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Jun 2009
โพส: 25
Default

มาศึกษาโคด งืมๆ
__________________
Be happy and enjoy life AccountingTravel BooksCheap Golf Pro Shop

Last edited by coco_love; 15-06-2009 at 02:11 PM.
coco_love is offline   Reply With Quote
Old 15-06-2009, 09:32 AM   #3
สมาชิกบอร์ด
 
suzuzaa's Avatar
 
เป็นสมาชิกเมื่อ: Jun 2009
โพส: 23
Default

mindphp ยังใช้ nuke อยู่เลย นับถือๆ
suzuzaa is offline   Reply With Quote
Old 04-08-2009, 08:04 PM   #4
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 18
Default

ขอบคุณที่เก็บมาฝาก
webd is offline   Reply With Quote
Old 04-08-2009, 08:09 PM   #5
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 1
Default

ขอบคุณจ้า
usebean is offline   Reply With Quote
Old 04-08-2009, 08:18 PM   #6
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 2
Icon10

ขอบคุณครับ

Last edited by boon666999; 04-08-2009 at 08:23 PM.
boon666999 is offline   Reply With Quote
Old 04-08-2009, 11:21 PM   #7
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 1
Default

ขอบคุณครับ
pakyaudio is offline   Reply With Quote
Old 20-11-2009, 03:32 PM   #8
สมาชิกบอร์ด
 
idealsilver's Avatar
 
เป็นสมาชิกเมื่อ: Nov 2009
โพส: 16
Default

ขอบคุณมากๆๆๆ
idealsilver is offline   Reply With Quote
Old 25-11-2009, 10:13 PM   #9
สมาชิกบอร์ด
 
fslinux's Avatar
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 16
Send a message via MSN to fslinux
Default

แล้วมันไปตรวจสอบกับอะไร ที่ไหนครับ
fslinux is offline   Reply With Quote
Old 09-01-2010, 11:37 PM   #10
สมาชิกบอร์ด
 
เป็นสมาชิกเมื่อ: Aug 2009
โพส: 39
Default

ขอลอกไปเลยนะครับ
__________________
Web Hosting 10GB ขึ้นไป ไม่จำกัดแบทวิท เริ่มต้นเพียง 499บาท/ปี จดโดเมน 350 บาท/ปี จดพร้อมเช่าโฮสต์ 299 บาท/ปี นึกถึง Hostคุณภาพบริการชั้นหนึ่ง นึกถึง HostNeverDie.com
izumi is offline   Reply With Quote
Reply

คำค้น (Tags)
ตรวจหมายเลขบัตรประชาชน, สูตร php

Thread Tools

ระดับการโพส
คุณ ไม่สามารถ โพสหัวข้อใหม่ได้
คุณ ไม่สามารถ โพสตอบกลับได้
คุณ ไม่สามารถ โพสไฟล์แนบได้
คุณ ไม่สามารถ แก้ไขโพสของคุณได้

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On

ไปยังฟอรั่ม


การตั้งการเวลาแบบ GMT +7. และเวลาในขณะนี้คือ 01:00 AM.


Forums design by: EthaiDesign.com. Copyright © 2004-2009. All right reserved.
เว็บไซต์ Ethaidesign.Com เป็นเพียงศูนย์กลางการเรียนรู้ของเหล่า Designers และ Programmers เป็นเว็บบอร์ดแลกเปลี่ยนความรู้ทั่วไป
ทางทีมงานไม่สามารถที่จะตรวจสอบเนื้อหาทุกอย่างโดยละเอียดได้ อันเกิดจากการโพสโดยสมาชิก หากพบเนื้อหาไม่เหมาะสมโปรดแจ้งทีมงานด่วน..


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24