Kategoriler
PHP

PHP ile T.C. Kimlik No Sorgulamak

T.C. Kimlik No, Türkiye Cumhuriyeti vatandaşlarına verilen 11 basamaktan oluşan benzersiz numaradır. Birler ve onlar basamağı doğrulama sayısıdır. T.C. Kimlik Numarası olup olmadığı hakkında bilgi vermektedir. Diğer basamaktaki sayılar ise bir algoritma ile hesaplanmaktadır.

İlk 10 rakamın toplamının birler basamağı tc kimlik numaranın 11. rakamı vermektedir.
1, 3, 5, 7 ve 9. rakamın toplamının 7 katı ile 2, 4, 6 ve 8. rakamın toplamının 9 katı olan bu sayıların toplamının birler basamağı tc kimlik numaranın 10. rakamı vermektedir.
1, 3, 5, 7 ve 9. rakamın toplamının 8 katı tc kimlik numaranın 11. rakamı vermektedir.

PHP T.C. Kimlik No sorgulama kodu şu şekildedir;

[code]<?php
function tckimlikno($tckimlikno)
{
$olmazlar=array(‘11111111110′,’22222222220′,’33333333330′,’44444444440′,’55555555550′,’66666666660′,’7777777770′,’88888888880′,’99999999990’);
if($tckimlikno[0]==0 or !is_int($tckimlikno) or strlen($tckimlikno)!=11)
{
return(false);
}
else
{
$s13579 = null;
$s2468 = null;
$s123456789on = null;
for($a=1; $a<=9; $a=$a+2)
{
$s13579 = $s13579 + $tckimlikno[$a-1];
}
for($a=2; $a<=8; $a=$a+2)
{
$s2468 = $s2468 + $tckimlikno[$a-1];
}
for($a=1; $a<=10; $a=$a+1)
{
$s123456789on = $s123456789on + $tckimlikno[$a-1];
}
if(($s13579*7+$s2468*9)%10 != $tckimlikno[9] || $s123456789on%10 != $tckimlikno[10])
{
return(false);
}
else
{
foreach($olmazlar as $olmaz)
{
if($tckimlikno==$olmaz)
{
return(false);
}
}
return(true);
}
}
}

$tckimlikno = ‘10000000146’;
$sonuc = tckimlikno($tckimlikno);
if($sonuc)
{
echo(“DOĞRU”);
}
else
{
echo(“YANLIŞ”);
}
?>[/code]

Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü sistemi üzerinden doğrulama yapmak için şu kodu kullanabilirsiniz;

[code]<?php
function tckimlik($tckimlik){
$post = ‘<?xml version=”1.0″ encoding=”utf-8″?><soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”><soap:Body><TCKimlikNoDogrula xmlns=”http://tckimlik.nvi.gov.tr/WS”><TCKimlikNo>’.$tckimlik[“tcno”].'</TCKimlikNo><Ad>’.$tckimlik[“ad”].'</Ad><Soyad>’.$tckimlik[“soyad”].'</Soyad><DogumYili>’.$tckimlik[“dogumyil”].'</DogumYili></TCKimlikNoDogrula></soap:Body></soap:Envelope>’;
$header = array(
‘POST /Service/KPSPublic.asmx HTTP/1.1’,
‘Host: tckimlik.nvi.gov.tr’,
‘Content-Type: text/xml; charset=utf-8’,
‘SOAPAction: “http://tckimlik.nvi.gov.tr/WS/TCKimlikNoDogrula”‘,
‘Content-Length: ‘.strlen($post)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx” );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$gelen = curl_exec($ch);
curl_close($ch);
return(strip_tags($gelen));
}

$tckimlik = [
“tcno”=>TCKIMLIKNUMARANIZ,
“ad”=>”ADINIZ”,
“soyad”=>”SOYADINIZ”,
“dogumyil”=>”DOĞUMYILINIZ”
];
$sonuc = tckimlik($tckimlik);
if($sonuc==”true”)
{
echo(“DOĞRU”);
}
else
{
echo(“YANLIŞ”);
}
?>[/code]

PHP SoapClient class ile T.C. Kimlik Numarası’nı doğrulama yapabileceğiniz diğer bir yöntemdir.

[code]<?php
$soap = new SoapClient(“https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL”);
try {
$sonuc = $soap->TCKimlikNoDogrula([
‘TCKimlikNo’ => ‘TCKIMLIKNUMARANIZ’,
‘Ad’ => ‘ADINIZ’,
‘Soyad’ => ‘SOYADINIZ’,
‘DogumYili’ => ‘DOĞUMYILINIZ’
]);
if ($sonuc->TCKimlikNoDogrulaResult) {
echo(“DOĞRU”);
} else {
echo(“YANLIŞ”);
}
} catch (Exception $e) {
echo $e->faultstring;
}
?>[/code]