14 AĞUSTOS 2017
PAZAR
18.00
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.";
	}
}
Uygulama Demosu Uygulamanın Dökümanlarını İndir
YORUMLAR 0
Bu konuya henüz kimse yorum yapmadı.
İlk yorumu sen yapmak ister misin?
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et