|
| Makaleler |
| Toplam Makale |
3330 |
| Yayında |
3150 |
| Bekleyenler |
180 |
| Görüntüleme |
13323335 |
|
|
|
|
PHP+SOAP kullanılarak TC Kimlik No Doğrulatma(web servisleri)
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 makale hakkında ek bilgi eklemek için buraya tıklayınız
Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.
Eklenme tarihi: 7-9-2006 Okunma: 3858
|
| Bu Makaleye Verilen Puan: |
|
Kullanıcı Yorumları
Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
İlgili Dökümanlar
|
|
|