* TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10'a bölümünden kalan, yani Mod10'u bize 11. haneyi verir.
Buna istinaden Php ile aşağıdaki kodu yazdım. Guzel bir sekilde calısmakta. Sitenizin herhangı bır yerınde kullanıcılarınızdan TC kimlik numarası ıstıyor ve bunun dogrulugunu kontrol etmek istiyorsanız bunu kullanabilirsiniz. Biraz acele lazım oldugu için aklıma gelen ilk mantık ile yazdım. Geliştirilebilir.
<?php
if (!$_POST) {
?>
<form action="<? $PHP_SELF;?>" method="post">
<input name="tc" type="text">
<input name="gonder" type="submit" value="Sorgula"/>
</form>
<?
} else {
$tc = $_POST[tc];
$t1 = substr($tc,0,1);
$t2 = substr($tc,1,1);
$t3 = substr($tc,2,1);
$t4 = substr($tc,3,1);
$t5 = substr($tc,4,1);
$t6 = substr($tc,5,1);
$t7 = substr($tc,6,1);
$t8 = substr($tc,7,1);
$t9 = substr($tc,8,1);
$t10 = substr($tc,9,1);
$t11 = substr($tc,10,1);
$say = strlen($tc);
if (empty($tc)) {
echo "Lütfen TC kimlik numaranızı giriniz!"."<br/>";
} else if ($t1 == 0) {
echo "TC Numaranızın İlk rakamı 0 olamaz!"."<br/>";
} else if ($say != 11) {
echo "TC Kimlik numarası 11 haneden oluşmaktadır"."<br/>";
} else {
$ilk = (($t1+$t3+$t5+$t7+$t9)*7-($t2+$t4+$t6+$t8))%10;
$son = ($t1+$t2+$t3+$t4+$t5+$t6+$t7+$t8+$t9+$t10)%10;
if ($ilk == $t10 && $son == $t11) {
echo "<font color='#669900'>TC Kimlik Numarası Dogru</font>";
} else {
echo "<font color='#FF0000'>TC Kimlik Numarası Yanlış</font>";
}
}}
?>
