E-ticaret sitelerinin bayağı bir yayılmasıyla beraber artık web siteleri üyelerinin TCKN bilgilerini tutuyor ve buda programcılara ekstra bir kontrol getiriyor bu yazıda girilen bir TCKN bilgisinin kurallara uygun olup olmadığını kontrol eden bir php fonksiyon anlatılmaktadır.
T.C. Kimlik Numarasında Bulunması Gereken Özellikler
- T.C. kimlik numaraları 11 hanedir ve tamamı rakamsal değerlerden oluşur.
- T.C. kimlik numarasının ilk hanesi sıfır(0) olamaz.
- 1. 3. 5. 7. ve 9. hanelerin toplamının 7 ile çarpımından 2. 4. 6. ve 8. haneler çıkartıldığında geriye kalan sayının 10′a göre modu bize 10. haneyi verir.
- 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. hanelerin toplamının 10′a göre modu bize 11. haneyi verir.
Kod aşağıda verilmiştir gereken açıklamalar kodun içinde yazmaktadır çalışan haline buradan bakabilirsiniz.
PHP Kimlik Doğrulama <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <!--?php <br ?-->/** * Tc Kimlik No Doğrulama * https://www.umutsinav.com * @umutsinav * @package php_dersleri */ $tckn = ($_POST['tckn']); if($_POST) { if(tckn_dogrulama($tckn)) $uyari = 'Kurallara uygundur'; else $uyari = 'Kurallara uygun değildir'; } function tckn_dogrulama($tckn) { $TekToplam = 0; $CiftToplam= 0; if($tckn[0]==0) return false; // ilk rakam 0 olamaz if(strlen($tckn)!=11) return false; //11 karakter olmalı for($i=0; $i<10; $i++) { if($i%2==0) $TekToplam+= $tckn[$i]; else $CiftToplam+= $tckn[$i] ; } if(($TekToplam+$CiftToplam)%10!=$tckn[10]) return false; //ilk 10 rakamın mod 10'u son rakama eşit olup olmadığı kontrol ediyoruz if((($TekToplam*7)-($CiftToplam-$tckn[9]))%10!=$tckn[9]) return false; // 1,3,5,7,9 rakamlarının toplamının 7 ile çarpımından 2,4,6,8 rakamlarının toplamını çıkartıp kalan sayının mod 10'nu alıp kimlik numarasının 10. karakterine eşit olup olmadığını kontrol ediyoruz. return true; } ?></pre> <h1>TCKN Kontrolü</h1> <form method="post" name="tckn"> <table style="width: 450px; border: yellow 1px ridge;" border="0"> <tbody> <tr style="background: black; color: white;"> <td>Tckn No</td> <td><input type="text" maxlength="11" name="tckn" /></td> </tr> <tr> <td colspan="2"></td> </tr> </tbody> </table> </form> <pre>
kontrol iyi ama..
http://bilgiedinme.meb.gov.tr/Internet/onbasvuru.aspx?kurum=meb
burada ki gibi TC yi yaz. kime ait olduğunu söylesin.
böyle bi şey yapaydın iyi olurdu 😀
servis kodlarını
https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL
adresinden alabilirsin.
asp.net biliyorsan yapabilirsin :)))
bu arada emeğine sağlık..
Hacı sana özel birşeyler yaptım sen tekrar sorguladığın zaman senin hakkında bilgiler verecek sistem… 🙂