PHP+SOAP kullanılarak tckimlik.nvi.gov.tr sitesinin web servis hizmetini kullanarak Tc kimlik numarası sorgulama işlemi..PHP+SOAP konusuna yeni başlayan arkadaşara çok yardımcı olacak diye düşünüyorum.Sayfanın çoğu yardım açıklamalarından oluşuyor.Herkesin anlaması için baya açıklama yazdım.Direk dreamweaver ‘a kopyala yapıştır yapın.Size kolay gelsin. Arkadaşlar merhaba
PHP+SAOP uygulamalarını kullanabilmek için apache web serverda bazı değişiklikler yapmamız gerekmektedir.php.ini dosyası içinde extension="php_soap.dll" yazısının olup olmadığını kontrol edin.eğer başında ";" varsa onu silin.eğer yoksa siz yazın.ve apache yi restart edin.böylece aşağıdaki kodları browserinizde açabilirsiniz.Ben herkes anlayabilsin diye baya bir yardım açıklaması yaptım.PHP+SOAP konusuna yeni başlayan arkadaşara çok yardımcı olacak diye düşünüyorum.Sayfanın çoğu yardım açıklamalarından oluşuyor.Direk dreamweaver ‘a kopyala yapıştır yapın..Bu yardım açıklamaları eminim sizin anlamanızda etkili olucaktır.bu kodları ben yaptım denemiştir ve çalışyo arkadaşalar.Size kolay gelsin
<?php
/*
** Copyright (c) 2006 Kadir GÜLAĞIZ
** Bu sayfa PHP+Soap uygulamasıdır.Bu sayfada http://tckimlik.nvi.gov.tr(Nufus Müdürlüğü) adresinin web servisi
** kullanılarak TC kimlik Doğrulaması yapılmaktadır.Bunun için nüfus müdürlüğünün web servis hizmeti kullanılmıştır.
** Bu sayfadaki bilgiler tamamen serbest dolaşabilir.İstenildiği gibi değiştirilebilir.
** İstenildiği gibi yayınlanabilir.Bu tamamiyle size kalmış.
** Bu sayfa PHP+Soap kullanımını öğrenmek isteyenlere başlangıç kaynağı olarak kullanılabilir.Kodlar içinde
** hiçbir hazır kütüphane kullanılmamıştır.
** Bu sayfayla ilgili tüm önerilerinizi ve eleştirilerinizi
** kadir_glz@yahoo.com adresine bekliyorum.
** Sakarya Üniversitesi Bilgisayar Mühendisliği 3 .sınıf
** http://kGlznet.kayyo.com
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>T.C. Kimlik Sorgulama…</title>
<style type="text/css">
<!–
.style2 {
font-size: 14px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style3 {
font-size: 12px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
–>
</style>
</head>
<body>
<?php
/* Öncelikle Nüfus Müdürlüğünün web servis hizmetini kullanabilmek için gereken adresi bilmeliyiz.
** soruişareti(?)’den sonra "wsdl" uzantısı olmalı.
** bu adresi öğrendikten sonra bir SOAP nesnesi oluşturmalıyız.aşağıdaki tek satırlık kod bir
** SoapClient nesnesi oluşturmaktadır.Soap Nesnesi oluşturalım ki,nüfus müdürlüğünün web servisi
** içindeki fonksiyonları kullanabilelim.
*/
$soap=new SoapClient("http://tckimlik.nvi.gov.tr/kpsPublic.asmx?wsdl");
?>
<div align="center">
<form id="form1" name="form1" method="post" action="">
<table width="350" border="1" cellpadding="0" cellspacing="0" bordercolor="#FF0000">
<tr>
<td><div align="center">
<table width="300" border="0">
<tr>
<td><div align="center" class="style2">T.C. Kimlik Numaranızı Giriniz..: </div></td>
</tr>
<tr>
<td><div align="center">
<input name="txtkno" type="text" id="txtkno" size="20" />
</div></td>
</tr>
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="Sorgula…" />
</div></td>
</tr>
</table>
</div></td>
</tr>
</table>
</form>
<?php
/*
**Buradaki kodlar sayfa post edildikten sonra kullanaılabilecekler.
*/
if($_POST)
{
/*
** Aşağıdaki fonksiyon türkçe karakterler dönüştürme fonksiyonudur.
** biz Nüfüs müdürlüğünün web servisini kullanarak verileri çektiğimizde , o veriler utf-8 formatındadırlar.
** yani bizim "İ" olmasını beklediğimiz harfimiz "İ" şeklinde gelmektedir.
** Bunu düzeltebilmek için bir fonksiyon kullanıyoruz.Böylece yanlış gelen harfler
** düzeltilerek kullanıcıya doğru bir şekilde gösterilmektedir.
*/
function turkce_karakterler($tck)
{
$tck=str_replace("İ","İ",$tck);
$tck=str_replace("Ü","Ü",$tck);
$tck=str_replace("Äž","Ğ",$tck);
$tck=str_replace("Å?","Ş",$tck);
$tck=str_replace("Ç","Ç",$tck);
$tck=str_replace("Ö","Ö",$tck);
return $tck;
}
/*
**Aşağıdaki tek satrılık kod ,nufus müdürlüğünün("http://tckimlik.nvi.gov.tr") web servisinin bize sunmuş olduğu
** fonksiyonlardan biridir."TCKimlikNoDogrula" fornksiyonu sayfamızdaki tckimlik numaramızı yazdığımız text kutusunun
** degerini alır.Böylece biz tckimlik numarasının aranması işlemini nufus müdürlüğünün web servisi
** üzerine atarız.Böylece gönderdiğimiz numara nufus müd. web servisinde aranır.XML verisi halinde olduğu içinde
** array kullanmamız gerekmektedir.
** peki neden *1(bir ile çarptık)?
** Çünkü "TCKimlikDogrula" fonksiyonu long veri tipindedir.
** bizim text kutumuz string bir değer gönderir.biz onu *1 ile sayısal hale getiririz.
**Eğer *1 i silersek , sorgulama çalışmaz.isterseniz deneyin!!!
*/
$tc=$soap->TCKimlikNoDogrula(array("tcKimlikNo"=>$_POST['txtkno']*1));
/*
** Aşağıdaki array yapısı şunun içindir.Şimdi hemen http://tckimlik.nvi.gov.tr/Web/WebServices.aspx adresine gidin.
** aşağıda çıkan linki tıklayın.(XML web servisleri dokumantasyonu)
** Orada web servisinin bize kullanmamız için free olarak fonksiyonları görülmektedir.
** biz "TCKimlikNoDogrula" fonksiyonunu kullanmaktayız.O fonksiyonu tıklayınca karşınıza XML sayfası gelir.
** O XML sayfasında "TCKimlikNoDogrula" etiketi vardır.biz onu yukarıdaki tek satrılık kod ile kullandık.
** Aşağıya inerseniz orada birde "TCKimlikNoDogrulaResult" etiketini göreceksiniz.Oranın içeriğine bakınca
** aşağıdaki array yapısının etiketlerini göreceksiniz.
** yani biz "TCKimlikNoDoğrula" etiketine text kutumuzdaki numarayı gönderdiğimizde
** bize "TCKimlikNoDogrulaResult" etiketi geri bildirim yapıp , o tckimlik numarasının bilgilerini bize geri döndürür.
** Böylece nufus müdürlüğünün web servisini kullanmış oluruz.
*/
$bilgiler=array("TCKimlikNo" => "T.C. Kimlik Numaranız..:",
"Ad" => "Adınız..:",
"Soyad"=>"Soyadınız..:",
"DogumYil"=>"Doğum Yılınız..:");
/*
** Şimdi gelelim verileri ekrana yazdırmaya.
** bir foreach döngüsü kullanrak "TCKimlikNoDogrulaResult" fonksiyonu vasıtasıyla
** bilgileri ekrana yazıyoruz.hemde utf-8 formatında gelen verileri turkce_karakterler fonksiyonunu
** kullanarak iso-8859-9 formatındaymış gibi ekrana basıyoruz.
** işte bu kadar.
*/
echo "<table border=\"1\" width=\"350\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF0000\">";
foreach($bilgiler as $deger => $metin)
{
echo "<tr><td><div align=\"left\" class=\"style3\">".$metin."</div></td>
<td>".turkce_karakterler($tc->TCKimlikNoDogrulaResult->$deger)."</td></tr>";
}
echo "</table>";
}
/*
** Bu kodlar PHP+SOAP uygulamalarına yeni başlayan arkadaşlara iyi bir
** başlangıç kaynağı olaağına inanıyorum.Bu sayfadaki kodlar denemiştir
** ve çalışıyo arkadaşlar.İnşallah yardımım olmuştur.Sizlere başarılar
** ve kolay gelsin…
*/
?>
</div>
</body>
</html>
Yazar:Kadir Gülağız
web Sayfası:http://kGlznet.kayyo.com
Bu benim ceviz.nette ilk makalem.inşaallah yardımım olmuştur.
php soap ile tc kimlik numarası, php ile web servis veri çekme, \soapclient\ not found in c:\wamp\www\, soap php veri çekme, soap mobil ödeme html örnek, soap ile tc no doğrulama programı, soap data çekme, php web service veri çekme, php tckimlik wsdl, php tc kimlik numarası adres ve kimlik bilgileri
Benzer Konular:
Oncelikle dedigim hayatımda hiç php kodu yazmadım bir ay once biraz çalıtım o kadar.
Adam benden bi tane form sayfası istedi nvi deki kimlik dogrulama işini gerçekleştiren.Yani tukaridaki kodu.
şimdi bu durumda benim bu kodu çalıştırabilmem için bu kodu yazmam yetiyor mu yoksa nvi ye para odemem gerekiyor.
Ya da benim direk olarak form sayfasına kimlik numarasını gonderip sonucu alma gibi bi olasılıgım yok mu?
Işte tam bu kısımda eger bunu yapabilirsem resim dogrulama işine gireck miyim?
Ya yardım edersiniz cok iyi olur ?
Direk olarak kodu kopyalam da olmaz aslında tabi ama kodu cvalistiramadım ki.
Dedigim gibi internetim de olmadıgım için baya bi zor oluyor…
Ozetle benim para odemeden direk normal kullanıcı gibi o sayfaya kimlik gonderip cıkan sayfadan da verileri alma olasılıgım yok mu?Bi de bunu yapabilirsem resim dogrulama yapacak mıyım?
Kod zaten var tabi ama ben daha çok ipucu istiyorum yani yapabilirsin şu konu ya da fonksiyonlar şeklinde olursa hem ben de ogrenmiş olurum…
Bu form sayfası çok onemli benim için yoksa stajımın yanabilir:(:(:(:(:(:
Tabi bi yandan da assembly,c ,cpp , java odevlerim var ki hiç sormayın:)
Merhabalar
php_soap.dll dosyasını nette taradım ama doğru dll i bulamadım. Yardımcı olurmusunuzzzzz…
merhabalar!
php_soap.dll dosyası php4 tede çalışıyormu. ben php.ini dosyasının içerisine extension=php_soap.dll satırını ekledim ve extension klasörününede dosyayı kopyaladım ama apachenin başlangıcında php_soap.dll ile ilgili tanınmadığına dair hata veriyor. teşekkürler…
devletimiz bu işide yine paraya dökmüş. devlet anlaşı gereki yapılan her sorgu 1 YKR muş. Ücretlendirme yapılan sorgu başına belirleniyormuş. Bence e-devlet mandığına daha doğrusu devlet mantığına ters bir davranış
bende
Fatal error: Class ‘SoapClient’ not found in c:\wamp\www\test.php on line 15
şu error çıkıyor. nasıl düzeltebilirim
soapclient nesnesi bulunamadı hatasının nedeni,c:\windows\php.ini dosyası içinde “entension=php_soap.dll” yazısının olmamasından kaynaklanır.uygulamanızın çalışması için php.ini dosyası içine “extension=php_soap.dll” yazın.inş. yardımım olmuştur.kolay gelsin
merhabalar
yukarıda yazdığım kodlar php5 için geçerli.php4 te sanıyorum ki çalışmıyor.php4 te soap uygulamaları için başka kütüphanelerden(nusoap) yararlanıldığını biliyorum.
1 ile çarpmak yerine (int) $_POST['txtkno'] kullanmak sanırım daha mantıklı.
1 ile çarptık.dikkat ederseniz tckimlikno web servisindeki değer long veri tipinde.yani int değil.o yuzden *1 ile işimizi gördük.
TCKimlikNoDogrulamada neden sadece ad soyad ve doğum tarihi geliyor.diğer alanları nasıl getire biliriz. şimdiden teşekkür ederim kolay gelsin.
yaw yukarıdaki kodları hiç çalıştıran oldumu.bütün yorumlardan sanki kimse bişey anlamamış gibi bir izlenimim var.bu da beni üzüyo yani.bi kişide “çalıştırmdım”diye yorum yapsın istiyroum.bilmiyorum çok şey mi istiyorum?:):):)kolay gelsin.
Bu kodun vb6′da yazılmışı varmıdır?
onu bilmiyorum.ama araştırmadan da bırakmayın.belki bulursunuz.kolay gelsin.
Ben çalıştırdım teşekkür ederim.
allaha şükür burada hayat varmış:))))
tckimlino ile ilgili bir sıkıntı yok fakat ssk’nın web servisi var orada http basic authentication ile bağlanmak gerekiyor vb de bir türlü beceremedim,
https://195.245.227.9/welfws/services/WelfWebServisleri/wsdl/WelfWebServisleri.wsdl
kullnıcı:29000937000
sifre:123456
bu konuda bana yardımcı olabilecek var mı?
… ve nüfus ve vatandaşlık işleri genel müdürlüğü xml soap ile ücretsiz kimlik bilgisi öğrenme ve doğrulamayı kapattı! yerine kimlik paylaşım sistemi (kps) dedikleri sistemi açtı. sorgu başına 1 kuruş tahsil ediyor. ama bu sistemden faydalanmak için şirket olmalı ve yazılı başvuruda bulunmalısınız. ayrıca vpn network altyapısını sağlamak da sizin göreviniz. tabiî müdürlük de karşılığında basit kimlik sorgulama yerine bütün kimlik bilgilerini döken çok daha gelişmiş bir sistem sunuyor. ne olurdu şu basit sistemi ücretsiz olarak açık tutmaya devam etselerdi???
serhat
php4 için farklı sınıflardan yararlanılıyor zannerdersem.benim bildigim NuSoap bunlardan bir tanesi.NuSoap diye aratırsan belki birşeyler bulursun.
sinem
senin ne demek istedigini pek anlamadım.saygılar.
Çok güzel bir örnek olmuş teşekkürler. Güvenlikli web servislere bağlabilen arkadaşlar var mı? php ile yapabiliyorumuyuz bunu?
herhangi bir değeri post etmeden sadece değerleri nasıl çekebiliriz?örneğin burada kimlik numarası gönderilmeden sorgu yapmak mümkün olsaydı nasıl yapılırdı?
t.c kimlik no yu çocukların ödevleri için de koymalısınız ben istanbul/tuzlada 4. sınıf öğrencisiyim
birden fazla sorgulama kriteri olsaydı sorgulama fonksiyonu nasıl olurdu?wsdl dosyasını locale kaydetip bu örneği çalıştırdığımızda çalışıyor.sonuçta dosyanın içinde soap serverin urlsi var.haksız mıyım?
@mkemal aslında sorunu tam anlamadım.wsdl dosyasını locale kaydedince yine çalışıyor demişşin ama zaten soap serverin url sinden sorgulama yaptığından locale dosya kaydedip kaydetmemek pek bişey değiştirmez.ya da ben demek istedigini anlamadım.saygılar…
sevgili mustafa
yaptığın bilgilendirme için sana teşekkür ederim.salosın
seleciii44 galiba çok zor bir durumdasın.ama ben senin ne yapmaya çalıştığını maalesef anlayamadım.şimdi kimlik doğrulama işini tc nufus müdürlüğünün saydasından yapacaksan o artık ücretli yukaridaki yorumları okursan anlarsın.vede yukarıdaki kodları sen kopyala yapıştır yaparak .php uzantılı olarak wamp5 programının sunucu klasörüne kaydeteceksin.olay bu kadar.
sadece ad soyad dogum yilini ve sehrini bilsem tc kimlik nosunu bulamammi bana yardim et.mailini bekliyorum
sadece ad soyad dogum yilini ve sehrini bilsem tc kimlik nosunu bulamammi bana yardim et.mailini bekliyorum. yardım edene çok dua ederim.erenis@hotmail.com
ewet bulabilirsin.ama şunu ifade edeyim tckimlik müdürlüğü sorgulama işlemini ücretli yaptı.o nedenle tc kimlik no sorgulama yapmak için nüfüs müdürlüğüne firma olarak yani kişisel başvursan da olmaz , firma olarak başvurup ücretini ödeyerek bu hizmeti kullanabilirsin.
Kolay gelsin.
bu konuda deneyimi olmayan benim gibi arkadasların cok isine yarayacak bir örnek, yardımınız için teşekkurler Kadir Bey.
kurumumuza kps sifresi tahsis edildi…
ancak veb tabanlı arayüze ihtiyacımız var. yardımcı olabilecek birisi var mı acaba bu konuda…
ilgilenenler mail atabilirler (kadir bey mailinizi bekliyorum)
arkadaşlar maalesef çok meşgulum.o nedenle yardım taleplerinize dönemiyorumm.