kişisel düşünceler, üstüne bir de teknoloji..

Php İle T.C. Kimlik No Doğrulama Fonksiyonu

Eğer büyük bir proje geliştirecekseniz ya da gerçekten önemli bir proje geliştiriyorsanız kullanıcılarınızın doğrulama işlemi gerçekten önemli bir hal alır. E-posta vb. doğrulama bizi bir yere kadar idare eder fakat artık bazı büyük firmalar doğrulamalarda T.C. Kimlik No istemeye başladı. T.C. kimlik numarasını doğrudan kontrol etme imkanımız yok maalesef(en azından ücretsiz yok). Ama bilindiği üzere T.C. kimlik numarasında bulunması gereken belli nitelikler var ve bu niteliklere göre kontrol edebiliriz.

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.

Geçenlerde bir arkadaş sorunca arşivimi karıştırdım. Ve aşağıda paylaştığım, yukarıdaki kriterlere göre verilen numarayı kontrol eden , geçerli bir T.C. kimlik numarası olup olmadığını bize söyleyen fonksiyonu buldum. Her ne kadar kesin bir çözüm olmasa da T.C. kimlik numarasının algoritmasını bilmeyenleri engeller.

Php İle T.C. Kimlik No Doğrulama Fonksiyonu

<?php 
function tckimlik($tckimlik){ 
    $olmaz=array('11111111110','22222222220','33333333330','44444444440','55555555550','66666666660','7777777770','88888888880','99999999990'); 
    if($tckimlik[0]==0 or !ctype_digit($tckimlik) or strlen($tckimlik)!=11){ return false;  } 
    else{ 
        for($a=0;$a<9;$a=$a+2){ $ilkt=$ilkt+$tckimlik[$a]; } 
        for($a=1;$a<9;$a=$a+2){ $sont=$sont+$tckimlik[$a]; } 
        for($a=0;$a<10;$a=$a+1){ $tumt=$tumt+$tckimlik[$a]; } 
        if(($ilkt*7-$sont)%10!=$tckimlik[9] or $tumt%10!=$tckimlik[10]){ return false; } 
        else{  
            foreach($olmaz as $olurmu){ if($tckimlik==$olurmu){ return false; } } 
            return true; 
        } 
    } 
} 
if(tckimlik('11111111110')){ echo 'Tc Kimlik Numarası doğru!'; } else { echo 'Lütfen geçerli bir Tc Kimlik Numarası giriniz...'; } 
?>

6 Comments

  1. Ekrem

    Bide T.C kimlik no oluşturma algoritmasını yazar mısınız 😛

    • Canahm3t

      o zaten hazır yazıda da var 🙂 ama T.C. no oluşturmak insanlarla eşleştirmek anlamına gelmiyor tabi 🙂

  2. levent yıldız

    hocam, en son if koşulundaki logic operator or(||) değil and (&&) olmalı.
    bilgine..

    • Ahmet İşcan

      merhaba, söz konusu kodda or operatörü yok hiç bir yerde zaten. ikimizden biri yanlış görüyor ama hangimiz?

  3. Hüseyin

    Merhaba bunu vbulletin forumda kullanabilir miyiz ?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir