TC Kimlik Numarası Algoritması ve Fonksiyonu
TC kimlik numarası, internet üzerinde güvenlik akla geldiğinde kişiye özel ve değiştirilemez olması sebebiyle bir numaralı tercihtir. Fakat girilen numaranın gerçekten bir TC kimlik numarası olup olmadığını nasıl bilebiliriz? Bunun algoritmasını ve fonksiyonunu yazmaya çalışalım.
TC Kimlik Numarası Algoritması
- 11 basamaktan ve yalnızca rakamlardan oluşmaktadır.
- İlk 9 basamağa göre 10. rakamı, ilk 10 basamağa göre de 11. rakamı bilebiliriz.
- İlk basamağı 0 olamaz.
- 1, 3, 5, 7 ve 9. hanenin rakamları toplamı A olsun. 2,4,6,8. hanenin rakamları toplamı da B olsun. Ax7 - B 'yi 10'a böldüğümüzde kalan (yani mod10) bize 10. basamağı verir.
- 1, 2, 3, 4, 5, 6, 7, 8, 9 ve 10. hanelerin toplamını 10'a böldüğümüzde ise kalan (yine mod10) bize 11. basamağı verir.
Artık işin sırrını öğrendik. Sıra bunu yazmakta.. Eğer girilen kural bunlara uygun değilse girilen sayılarda bir TC kimlik numarası olamaz demektir.
TC Kimlik Numarası PHP Kontrol Fonksiyonu
Fonksiyonumuzun koda dökülmüş hali şöyledir;
HTML
<form method="POST">
<input type="text" name="TC" placeholder="Kontrol Edilecek TC Kimlik Numarası">
<button name="kontrolEt">Kontrol Et</button>
</form>
PHP
if (isset($_POST["kontrolEt"])) {
$TC = $_POST["TC"];
if (strlen($TC) == 11) {
if (is_numeric($TC)) {
$TC_10 = ((($TC[0] + $TC[2] + $TC[4] + $TC[6] + $TC[8])*7) - ($TC[1] + $TC[3] + $TC[5] + $TC[7])) % 10;
if ($TC_10 == $TC[9]) {
$TC_11 = ($TC[0] + $TC[1] + $TC[2] + $TC[3] + $TC[4] + $TC[5] + $TC[6] + $TC[7] + $TC[8] + $TC[9]) % 10;
if ($TC_11 == $TC[10]) {
echo "TC Kimlik Numarası GEÇERLİ!";
} else {
echo "Geçersiz TC Kimlik Numarası!";
}
} else {
echo "Geçersiz TC Kimlik Numarası!";
}
} else {
echo "TC Kimlik Numarası yalnızca rakamlardan oluşmaktadır.";
}
} else {
echo "TC Kimlik Numarası 11 hane olmak zorundadır.";
}
}