Php ile T.C. Kimlik No Sorgulama

 bcakir
 25 Ekim 2011
 Php

Merhaba arkadaşlar bu yazımda T.C. Kimlik Numarasının gerçek olup olmadığını sorgulamayı sizlere anlatacağım. Uygulamamızı yapmaya başlamadan önce Apache Server ayarlarınızın kontrol edilmesi gerekiyor. Bilgisayarınızda veya da serverınızda php.ini dosyasına girip php_openssl.dll ve php_soap.dll satırlarının önünde bulunan noktalı virgülü (;) kaldırmanız gerekmektedir. Çünkü T.C. Kimlik No sorgulatmayı SOAP protokolüyle yapabiliyoruz bundan dolayı da bu protokolü aktif hale getirmeliyiz. Gerekli ayarı yaptıktan sonra php.ini dosyasını kaydederek kapatın ve serverınızı yeniden başlatın. Artık serverınız uygulamamızı çalıştırmaya başlayacaktır. Uygulamamızda iki bölüm olacak. İlk bölüm form elemanlarının olduğu bölüm. İkincisi ise sorgulamayı yapacağımız bölüm. Şimdi uygulamamızın birinci bölümüyle geliştirme işlemine başlayalım.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>T.C Kimlik No Sorgulama</title>
</head>
<body>

<form action="index.php" method="post">
Ad:<div><input type="text" name="ad" /></div>
Soyad:<div><input type="text" name="soyad" /></div>
Doğum Yılı:<div><input type="text" name="dogum_yili" /></div>
T.C No:<div><input type="text" name="tc_no" /></div>
<input type="submit" value="Sorgula" />
</form>

</body>
</html>

Uygulamamızın bilgilerin alınması ve gönderilmesi işlemini yukarıda yaptık. Bu bölümde ise sorgulama işlemini yapacağız. Bütün kodları index.php sayfasında geliştireceğiz. Kodları sayfaya eklerken istediğiniz bölümü üste veya alta koyabilirsiniz, çalışmasını etkilemeyecektir.

<?php
if(isset($_POST["tc_no"])){
    //Türkçe karakter seti
    header("Content-type: text/html; charset=utf-8");

    //Post edilen verilerin alınması
    $ad = strtoupper(karakter_duzeltme(trim($_POST["ad"])));
    $soyad = strtoupper(karakter_duzeltme(trim($_POST["soyad"])));
    $dogum_yili = trim($_POST["dogum_yili"]);
    $tc_no = trim($_POST["tc_no"]);
    settype($tc_no, "double");

    try {
    	// Gönderilecek veriler
    	$veriler = array(
    		"TCKimlikNo" => $tc_no,
    		"Ad" => $ad,
    		"Soyad" => $soyad,
    		"DogumYili" => $dogum_yili
    	);

    	// Adrese bağlanma
    	$baglan = new SoapClient("https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL");
    	// Verilerin gönderilmesi
    	$sonuc = $baglan->TCKimlikNoDogrula($veriler);

    	// Sonucun döndürülmesi
    	if ($sonuc->TCKimlikNoDogrulaResult){
    		echo 'T.C numarası doğru';
    	}else {
    		echo '! T.C numarası yanlış';
    	}

    }catch (Exception $hata){
    	echo '! T.C numarası bulunmamaktadır...';
    }
}

//Türkçe karakter düzeltme fonksiyonu
function karakter_duzeltme($gelen){
	$karakterler = array("ç","ğ","ı","i","ö","ş","ü");
	$degistir = array("Ç","Ğ","I","İ","Ö","Ş","Ü");
	return str_replace($karakterler, $degistir, $gelen);
}
?>

İlk önce form elemanlarına girilen bilgileri aldık ve uygun gönderme formatına getirdik. Ardından, SOAP protokolüyle nüfus kayıt bilgilerine bağlandık ve sorgulamamızı yaptık. Daha sonra ise dönen bilgiyi yani girilen bilgilerin doğru olup olmadığı sonucunu ekrana yazdırdık. Böylece bir uygulamamızın daha sonuna gelmiş olduk. Yararlı olması dileğiyle.

 4.605 Okunma

Bu yazıya 10 yorum yapılmış.

  1. Sitenizdeki yazıların paylaşılmasına izin veriyor musunuz?

    • Kullandığınız yazıların asıl kaynağına sitenizde bağlantı verdiğiniz sürece, yazıları paylaşabilirsiniz.

  2. php_openssl.dll ve php_soap.dll dosyalarını htaccess ile veya farklı bir yöntemle aktif hale getirmek mümkün mü?

  3. kod çalışmadı hocam. servis devre dışı kalmış olabilir mi?

  4. Bende bunu arıyordum, paylaşım için teşekkürler.

  5. kod çalışmadı hocam. servis devre dışı kalmış olabilir mi?

  6. Kod çalışıyor ellerinize sağlık.TC kimlik no girildiğinde isim ve soyisimi otomatik olarak nasıl çektirebiliriz ?

    • Sadece TC Kimlik Numarası girerek isim ve soyisim bulamazsın diye biliyorum.

  7. çok teşekkürler yine çok faydalı ve aradığımız bir konuda aydınlatmışsınız.Bir projemizde tc ve e-devlet şifresinin doğruluğunu kontrol etmemiz gerekiyor sisteme giriş yapmak için. Bunu nasıl sağlarız.e devlet dede böyle tc doğrulamada olduğu gibi doğrulama sağlayabilirmiyiz.yardımlarınız ve paylaşımlarınız için teşekkürler…

  8. Merhaba

    Peki Şunu Soracagım Normal Bir İletişim Formuna Bunu Nasıl Entegre Edebiliriz Misal Mail.php’de TC Alanın Sorgusunu Nasıl Yapabiliriz.

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Php
Kapat