PHP ile TC Kimlik Doğrulama İşlemi

PHP ile TC Kimlik Doğrulama İşlemi

Hepinize merhaba dostlarım 😊. Uzun bir aradan sonra tekrardan yine yeni bir konu ile ve bir yazılımcı dostumun isteği üzerine PHP kategorisinden yeni bir makale yayınlamak istedim. Valla özlemişim PHP kategorisini aşırı mutlu etti beni şu an 😊.

Bu makalemde dostlarım her zamankinden farklı bir konuya değineceğiz. Sizlerin içine aynı şu sözcükler gelmiştir ben inanıyorum

Hocam sanırsak api vs falan işleyeceğiz galiba o şekilde gibi hissediyoruz 😊

Eveeet dostlarım aynen o şekilde. Ama baştan bir api yazmayacağız, hali hazırda olan bir apiyi kullanacağız bu net 😊. Ama siz sormadan ben şimdi söyleyeyim. Bu makalede "TC Kimlik Doğulama" apisini kullanacağız. Şimdi içinizden diyorsunuzdur

Hocam normalde onun algoritmasını 10 hanenin toplamını al birler basamağındaki sayı 11. hane ile aynı ise doğrudur diye ayarlıyorduk

iyi güzel de dostlarım ben mesela çakallık yaptım 10 hane için 1, 11. hane için 0 yazdım ne olacak 😊. Bu TC numarasına ait vatandaş vardır diyeceksiniz. Allah korusun yarın ertesi gün bir hata oldu illegal vs falan o kişiyi bulamayacaksınız ve bu aşırı tehlikeli durum dostlarım 😊.

Gelin hep beraber bu apinin ne olduğunu, neden bu apiyi ileri sistemlerde kullanmamız gerektiğini bir görelim dostlarım

TC Kimlik Doğrulama API'si Nedir ? Neden Kullanmalıyız ?

Eveeeet dostlarım gelelim artık makalemizin en önemli yerine. TC Kimlik doğrulama apisi adı üstünde sistemimiz üzerinde TC kimlik numarasını giren her vatandaş için TC Kimlik sistemi üzerinden o vatandaşın var olup olmadığını analiz ediyor. Eğer var ise olumlu, yok ise olumsuz sonuç döndürüyor. Bu kısma kadar tamamız

Neden kullanmalıyız sorusuna gelecek olursak dostlarım size şöyle bir örnek vereyim. Bir E-Ticaret sistemi kurdunuz diyelim. Müşteriler tablonuz var veri tabanında. Bu tabloda mesela bir müşteri illegal işler için sizin sistemi kullanıyor varsayalım. Kullanıcı kayıt kısmında TC kimlik numarası analizini tc algoritmasına göre yaptığınızda bu kullanıcı 

11111111110

 yazıp kayıt olabilir ve bu tehlikeli bir durumdur. TC algoritmasını kırdı vs falan girdi sitemde dolanıyor. Bunun olmasını istemeyiz tabi. Bu durumda biz TC apisini kullandığımızda ve bu kullanıcının TC numarasını da kayıt ettiğimiz taktirde (harici bir yere kayıt edersek tabi db de olmasını pek önermem) bu kullanıcının site üzerindeki herhangi bir illegal işlerini çok rahat şekilde analiz edebiliriz 😊. Bu kısma kadar tamam isek dostlarım hemen kodlama kısmından bir örnekle bu işlemi kavrayalım diyorum 😊.

Kodlama Kısmına Geçelim

Eveeeeet dostlarım. Kodlama kısmımıza geçmeden önce php.ini dosyamız üzerinde

;extension=soap

üzerinde ';' işaretini kaldıralım. Bu kısmı kaldırdıktan sonra ise dostlarım ufak bir proje klasörü oluşturalım. Burada önce bir index.php dosyası oluşturalım ve daha sonra içerisine

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <title>TC Doğrula | MFSoftware</title>
</head>
<body>
    <div class="container mt-5">
        <form action="islem.php" method="POST">
            <div class="row">
                <div class="col-md-12">
                    <label for="">TC Kimlik Numarası</label>
                    <input type="number" max="99999999999" class="form-control" name="tc">
                </div>
                <div class="col-md-12">
                    <label for="">Adınız</label>
                    <input type="text" class="form-control" name="ad">
                </div>
                <div class="col-md-12">
                    <label for="">Soyadınız</label>
                    <input type="text"  class="form-control" name="soyad">
                </div>
                <div class="col-md-12">
                    <label for="">Doğum Yılınız</label>
                    <input type="number" maxlength="4" class="form-control" name="dogum_yil">
                </div>
                <div class="col-md-12 mt-3">
                    <button type="submit" name="kontrol" class="btn btn-primary btn-sm">Kontrol Et</button>
                </div>
            </div>
        </form>
    </div>
</body>
</html>

 

şeklinde kodlarımızı yazalım. Bu kısma kadar yazdıktan sonra dostlarım daha sonrasında islem.php içerisine gelip

<?php

if (isset($_POST['kontrol'])){
    $tc = $_POST['tc'];
    $ad = $_POST['ad'];
    $soyad = $_POST['soyad'];
    $dogum_yil = $_POST['dogum_yil'];


    $analiz = new SoapClient("https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL");   // ISTEK ATACAĞIMIZ API DEN NESNE OLUSTURALIM
    try {
        $sonuc = $analiz->TCKimlikNoDogrula([     // NESNE ICINDEN METHODA ERISELIM VE PARAMETRELERI EKLEYELIM
            'TCKimlikNo' => $tc,
            'Ad' => $ad,
            'Soyad' => $soyad,
            'DogumYili' => $dogum_yil
        ]);
        if ($sonuc->TCKimlikNoDogrulaResult) {     // SONUC VAR MI YOK MU
            echo 'T.C. Doğru';
        } else {
            echo 'T.C. Sahte';
        }
    } catch (Exception $e) {
        echo $e->faultstring;   // APIDEN HATA DONERSE BURAYA DUSECEK
    }
}

Tayfun Erbilen Hocamın Sitesinden Alınıp Revize Edilmiştir (Link Burada)

Şeklinde kodlarımızı yazdık. Ben buradan hemen hızlıca kendi bilgilerimi yazdım test için dostlarım. Karşımıza gelecek olan sonuç

T.C. Doğru

şeklinde çıktı almış oluyorum. Bütün işlemler bu kadar dostlarım. Bunu bir de sonuca bağlayıp aksiyon alırsanız tadından yenmez 😊. 

 

Eveeeet dostlarım bu yazımda sizlere elimden geldiğince dilim döndüğünce PHP ile TC Kimlik Doğrulama İşlemi konusundan elimden geldiğince dilim döndüğünce bahsettim. Umarım faydalı olmuşumdur. Konu başlarda biraz karmaşık gelebilir. Hani her ne kadar da her yazımda basit dememin yanısıra karmaşık olan yanları illa ki vardır yeni öğrenen dostlarım için. Aynı yollardan geçtiğim için biliyorum anlıyorum 😊. Bu aşamada yapmanızı istediğim tek şey her yazımda da dediğim gibi "İstikrarlı ve Azimli Olmalısınız, Bolca Pratik Yapmalısınız 😊".  Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır.

Aynı zamanda 25 Aralık 2022 de kurmuş olduğum seyyaryazilimci.com soru cevap sitesi de yayında dostlarım haberiniz olsun. Her zaman dediğim gibi sorular ve cevaplar belirli bir süre admin onayından geçerek sistem üzerinde yayınlanmaktadır dostlarım bilginiz olsun😊.

Yeni açtığım youtube kanalımı da buraya bırakıyorum dostlarım. Kanalıma abone olmayı, bildirimleri açmayı unutmayın dostlarım 😊

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıVue.Js Event Handling İşlemi
Sonraki YazıVue.js Conditional Rendering İşlemi
Yorumlar (1)
Fikret YALÇIN
17.12.2022

Hocam böyle bir paylaşım yaptığınız için çok teşekkür ederim

Yorum Yapabilirsiniz