Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > หมายเลขบัตรประชาชน? สร้างเองดีกว่า สาเหตุที่ผมเขียนบทความนี้ขึ้นมา เพราะว่ามันจะมีบางช่วงเวลาที่ผมจำเป็นต้องใช้หมายเลขบัตรประชาชนในการทำอะไรหลาย



 

หมายเลขบัตรประชาชน? สร้างเองดีกว่า สาเหตุที่ผมเขียนบทความนี้ขึ้นมา เพราะว่ามันจะมีบางช่วงเวลาที่ผมจำเป็นต้องใช้หมายเลขบัตรประชาชนในการทำอะไรหลาย

 



Topic : 026556



โพสกระทู้ ( 31 )
บทความ ( 0 )



สถานะออฟไลน์




สาเหตุที่ผมเขียนบทความนี้ขึ้นมา เพราะว่ามันจะมีบางช่วงเวลาที่ผมจำเป็นต้องใช้หมายเลขบัตรประชาชนในการทำอะไรหลาย ๆ อย่าง ไม่ว่าจะเป็นเรื่องของการทำระบบ verify หมายเลขบัตรประชาชน หรือเอาไปใช้สมัครโน่นสมัครนี่ บางครั้งผมแค่อยากลองเฉย ๆ แต่ไม่ได้อยากใช้หมายเลขบัตรของผมจริง ๆ ด้วยเหตุผลด้านความปลอดภัยของผมเอง ผมเลยลองสร้างหมายเลขบัตรประชาชนจากอัลกอริธึมในการตรวจสอบหมายเลขบัตรประชาชนขึ้นมา

อัลกอริธึมในการตรวจสอบหมายเลขบัตรประชาชน สามารถหาได้ตามเว็บทั่ว ๆ ไป ที่ผมได้มาก็จะประมาณนี้ครับ (Javascript)

JAVA SCRIPT
/************************************************************************************************/
function validate_thai_citizen_id(id)
{
var b = 0;
if (id.length < 13) return false;
checksum = id.substring(12, 13);
for (var i = 0; i < 12; i++)
{
b += parseInt(id.substring(i, i+1)) * (13 - i);
}
tmp = 11 - (b % 11);
switch(tmp)
{
case 11: check = 1; break;
case 10: check = 0; break;
default: check = tmp;
}
return (check == checksum);
}
/************************************************************************************************/
จาก code ด้านบน เราจะเห็นได้ว่าส่วนที่สำคัญที่สุดคือ digit สุดท้าย ซึ่งจะทำหน้าที่เป็น checksum digit ซึ่งเราสามารถคำนวณได้จาก 12 digits แรก

เมื่อเราเอามาจัดการเขียนให้เป็นเรื่องเป็นราวจะได้แบบนี้ครับ

function generate_thai_citizen_id()
{
$checksum = 0;
$b = 0;
$r = 0;
$t = "";
mt_srand();
for ($i = 0; $i < 12; $i ++)
{
$r = mt_rand(0, 7777) % 10;
$b .= $r * (13 - $i);
$t .= $r;
}
$tmp = 11 - (b % 11);
switch($tmp)
{
case 11: $check = 1; break;
case 10: $check = 0; break;
default: $check = $tmp;
}
$t .= $check;
return $t;
}

ปล ผมไม่ได้คิดเองนะครับเจอใน internet เลยเอามาฝากครับ คิดว่าน่าจะมีประโยชน์กับเพื่อนสมาชิกทุกท่านครับ ขอบพระคุณเจ้าของบทความมา ณ ที่นี้ด้วยนะครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-04-22 13:48:42 By : NOHARA View : 4619 Reply : 7
 

 

No. 1



โพสกระทู้ ( 1,357 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


mt_srand();

มันอยู่ไหนอ่ะครับ ทำงานยังงัย






Date : 2009-04-22 17:13:05 By : lozomac
 


 

No. 2



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook Hi5

วิธีคำนวณหมายเลขประจำตัวประชาชนเพื่อค้นหาหลักสุดท้ายครับ
? ขั้นตอนที่ 1
? หลักที่ 1 คูณด้วย 13
? หลักที่ 2 คูณด้วย 12
? หลักที่ 3 คูณด้วย 11
? หลักที่ 4 คูณด้วย 10
? หลักที่ 5 คูณด้วย 9
? หลักที่ 6 คูณด้วย 8
? หลักที่ 7 คูณด้วย 7
? หลักที่ 8 คูณด้วย 6
? หลักที่ 9 คูณด้วย 5
? หลักที่ 10 คูณด้วย 4
? หลักที่ 11 คูณด้วย 3
? หลักที่ 12 คูณด้วย 2
? ขั้นตอนที่ 2
? นำเอาผลคูณของจำนวนทั้งหมดมาบวกกัน แล้วหารด้วย 11 เอาเฉพาะเศษครับ
? ขั้นตอนที่ 3
? นำ 11 มาตั้งแล้วลบด้วยเศษที่ได้จากการหารครับ เสร็จแล้วตัวเลขนี้ก็คือหมายเลขประจำตัวประชาชนหลักสุดท้ายหรือหลักที่ 13 นั่นเองครับ แต่ถ้าผลที่ออกมาเป็นเลข 2 หลักก็ให้เอาเฉพาะเลขหลักสุดท้ายหรือหลักที่ 2 มาเท่านั้นนะครับ หลักแรกไม่ใช่ครับ

Date : 2009-04-23 11:02:39 By : dsonline
 

 

No. 3



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


ว้าววววว
Date : 2009-04-25 23:40:15 By : annbluesky
 


 

No. 4

Guest


ปกติเลขบัรประชาชนนั้น มี 13 หลักแม่นก่อ ถ้าเรากรอกไม่ครบก็ดี กรอกผิดค่า digit ก็ดีมันจะแจ้งเตื่อนว่าคุณกรอกเลขบัตรประชาชนไม่ถุกต้องตามรูปแบบ แต่ ถ้าผมลองกรอก ไปว่า 1111111111119 หรือ 0000000000001ทำไมมันให้ผ่านล่ะครับ ปกติมันต้องแจ้งข้อผิดพลาดนะ
Date : 2009-04-27 11:49:56 By : egat_uru@pich_uru
 


 

No. 5



โพสกระทู้ ( 1 )
บทความ ( 0 )



สถานะออฟไลน์


แจ่มมาก ๆ ค่ะ เพราะว่า ต้องใช้ข้อมูลในส่วนนี้ สำหรับการทดสอบระบบตลอดเวลาเลยค่ะ จะลองนำไปใช้ดูน่ะค่ะ แต่ต้องขอบคุณมาก ๆ เลยค่ะ
Date : 2009-08-20 10:22:27 By : aeyzip
 


 

No. 6



โพสกระทู้ ( 1,528 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


สรุป ใช้ได้มั้ยครับ
Date : 2009-08-20 10:33:55 By : Sek-Artdrinker
 


 

No. 7

Guest


ผมแก้บักให้แล้วครับ มีบักนิดหน่อย

อ่านข้อความต้นฉบับได้ที่ http://blog.chonla.com/2009/04/หมายเลขบัตรประชาชน-สร้า/ ครับ


ขอบคุณครับ
Date : 2009-09-09 16:35:03 By : chonla
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : หมายเลขบัตรประชาชน? สร้างเองดีกว่า สาเหตุที่ผมเขียนบทความนี้ขึ้นมา เพราะว่ามันจะมีบางช่วงเวลาที่ผมจำเป็นต้องใช้หมายเลขบัตรประชาชนในการทำอะไรหลาย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่