T.C. Kimlik Doğrulama Fonksiyonu Hk.
9
●962
- 14-06-2024, 16:26:28Arkadaşlar elinde PHP ile hazırlanmış bir T.C. Kimlik Doğrulama fonksiyonu olan varsa benimle paylaşabilir mi? En son kullandığım bir fonksiyon şuan için hata vermekte biraz aciliyeti var eğer bu şekilde bir kullanım yapan arkadaşlardan ricam paylaşırlarsa duacıları olurum gerçekten. Şimdiden teşekkür ederim yardımcı olacak arkadaşlara
- 14-06-2024, 16:29:14
function kimlikNoDogrula($kimlikNo) { // Kimlik numarasının 11 haneli olup olmadığını kontrol et if(strlen($kimlikNo) != 11) return false; // Tüm karakterlerin rakam olup olmadığını kontrol et if(!ctype_digit($kimlikNo)) return false; // İlk rakam 0 olamaz if($kimlikNo[0] == 0) return false; // Kimlik numarası algoritması $ilk9Basamak = substr($kimlikNo, 0, 9); $ilk10BasamakToplam = 0; for($i = 0; $i < 9; $i++) { $ilk10BasamakToplam += $ilk9Basamak[$i] * (10 - $i); } $ilk10BasamakKontrol = $ilk10BasamakToplam % 11; if($ilk10BasamakKontrol == 10) { $ilk10BasamakKontrol = 0; } // 10. basamak kontrolü if($kimlikNo[9] != $ilk10BasamakKontrol) return false; // 11. basamak kontrolü $sonBasamakToplam = 0; for($i = 0; $i < 10; $i++) { $sonBasamakToplam += $kimlikNo[$i]; } if($sonBasamakToplam % 10 != $kimlikNo[10]) return false; // Geçerli kimlik numarası return true; } // Test $kimlikNo = "12345678901"; // Geçerli bir kimlik numarası if(kimlikNoDogrula($kimlikNo)) { echo "Kimlik numarası geçerli."; } else { echo "Kimlik numarası geçersiz."; }chatGPT sağolsun. umarım işine yarar. - 14-06-2024, 16:53:35MERNİS bahsettiğiniz özellik için api sağlıyor hocam.iyovi adlı üyeden alıntı: mesajı görüntüle
- 14-06-2024, 17:01:32Bir döküman linki vs. paylaşır mısınız? Şuan onların paylaşmış olduğu bir link var aslında https://tckimlik.nvi.gov.tr/Service/...imlikNoDogrula lakin burada istek atınca şuan postman üzerinden çalışmıyor robot meselesi çıkarmışlar sanırım ona takılıyor ilginç şekilde maks 1 saat öncesine kadar çalışıyordu. Sanırım bir ufak güncelleme getirdiler sistemlerine sizlerde deneyebilirsiniz.NSDevelopment adlı üyeden alıntı: mesajı görüntüle
- 14-06-2024, 17:20:42Hocam doğrudur dediğiniz birkaç sene öncesinde Engin Demiroğ'un videosunda görmüştüm oradan aklımda kalmışiyovi adlı üyeden alıntı: mesajı görüntüle
- 14-06-2024, 18:06:48
function tcno_dogrula($bilgiler){ $gonder = '<?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>'.$bilgiler["tcno"].'</TCKimlikNo> <Ad>'.$bilgiler["isim"].'</Ad> <Soyad>'.$bilgiler["soyisim"].'</Soyad> <DogumYili>'.$bilgiler["dogumyili"].'</DogumYili> </TCKimlikNoDogrula> </soap:Body> </soap:Envelope>'; $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_HEADER, FALSE); curl_setopt($ch, CURLOPT_POSTFIELDS, $gonder); curl_setopt($ch, CURLOPT_HTTPHEADER, 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($gonder) )); $gelen = curl_exec($ch); curl_close($ch); return strip_tags($gelen); }$bilgiler = array( "isim" => "ALİ ATA", "soyisim" => "BAK", "dogumyili" => "xxxx", "tcno" => "xxxxx" );
$sonuc = tcno_dogrula($bilgiler); if($sonuc=="true"){ echo "Doğrulama başarılı"; }else{ echo "Doğrulama başarısız"; } - 14-06-2024, 18:17:31Daha temiz olması açısından sizin kodların üzerinden ilerleme yaparak POSTMAN üzerinden kontrol ettiğimde gayet güzel ve başarılı sonuç elde ettim aşağıda fonksiyonları ve response görüntüsünü paylaşıyorum kullanmak isteyen arkadaşlar olursa gayet sağlıklı şekilde çalışıyor kontrol edebilirsiniz.ntka adlı üyeden alıntı: mesajı görüntüle
<?php function NVITCSorgula($bilgiler = array()) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'<?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>'.$bilgiler['TCKimlikNo'].'</TCKimlikNo> <Ad>'.$bilgiler['Ad'].'</Ad> <Soyad>'.$bilgiler['Soyad'].'</Soyad> <DogumYili>'.$bilgiler['DogumYili'].'</DogumYili> </TCKimlikNoDogrula> </soap:Body> </soap:Envelope>', CURLOPT_HTTPHEADER => 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"', 'Cookie: TS0193588c=01e4b30442ae308bf9bb635dc7895298e8f2d382b1f484a1209cb70726a4888c12c705b7ed57df13477e3ae27f77feafa66b531bab' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; }<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <TCKimlikNoDogrulaResponse xmlns="http://tckimlik.nvi.gov.tr/WS"> <TCKimlikNoDogrulaResult>true</TCKimlikNoDogrulaResult> </TCKimlikNoDogrulaResponse> </soap:Body> </soap:Envelope> - 14-06-2024, 19:31:48
<?php function tcKimlikDogrula($tcKimlikNo, $ad, $soyad, $dogumYili) { $soapUrl = "https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx"; $soapAction = "http://tckimlik.nvi.gov.tr/WS/TCKimlikNoDogrula"; $xml_post_string = '<?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>' . $tcKimlikNo . '</TCKimlikNo>' . '<Ad>' . $ad . '</Ad>' . '<Soyad>' . $soyad . '</Soyad>' . '<DogumYili>' . $dogumYili . '</DogumYili>' . '</TCKimlikNoDogrula>' . '</soap:Body>' . '</soap:Envelope>'; $headers = array( "Content-type: text/xml;charset=\"utf-8\"", "Accept: text/xml", "Cache-Control: no-cache", "Pragma: no-cache", "SOAPAction: $soapAction", "Content-length: " . strlen($xml_post_string), ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $soapUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); $doc = new DOMDocument(); $doc->loadXML($response); $result = $doc->getElementsByTagName("TCKimlikNoDogrulaResult")->item(0)->nodeValue; return $result == "true"; } $tcKimlikNo = ""; $ad = ""; $soyad = ""; $dogumYili = ; $result = tcKimlikDogrula($tcKimlikNo, $ad, $soyad, $dogumYili); if ($result) { //KİMLİK BİLGİLERİ DOĞRU İSE echo "true"; } else { //KİMLİK BİLGİLERİ DOĞRU DEĞİL İSE } ?>