• 06-03-2022, 05:09:58
    #1
    Arkadaşlar kodlar bu şekilde tc kimlik bilgimi doğru girmeme rağmen hata oluştu veya girilen kimlik bilgisi uyumlu değil diyor yardımcı olurmusunuz ?
    <?php
    $title =  $pages[$cur_page]["Name"]." - ".HCSGP_DEFTITLE;
    $durum = FALSE;
    $message = '';
    
    function karakterDuzelt($yazi){
        $ara=array("ç","i","ı","ğ","ö","ş","ü");
        $degistir=array("Ç","İ","I","Ğ","Ö","Ş","Ü");
        $yazi=str_replace($ara,$degistir,$yazi);
        $yazi=strtoupper($yazi);
        return $yazi;
    }
    
    if( isset($_POST["ogcp_adduser"]) ) {
        $_POST["user_group"] = 1;
            if(@$_POST["user_email"] != "" && @$_POST["user_year"] != "" && @$_POST["user_lastname"] != "" && @$_POST["user_tc"] != "" && @$_POST["user_pass"] != "" && @$_POST["user_name"] != "" && @$_POST["user_city"] != "" && @$_POST["user_address"] != "" && @$_POST["user_telephone"] != "" && (int)@$_POST["user_group"] > 0 && (int)@$_POST["user_group"] < 4) {
    
                    $_POST["ShowMachine"] = 0;
                    $_POST["ShowServers"] = 0;
                    $_POST["ShowUsers"] = 0;
                    $_POST["ShowAnnouncements"] = 0;
                    $_POST["ShowTickets"] = 0;
                    $_POST["ShowPlugins"] = 0;
                    $_POST["ShowFiles"] = 0;
                
                if (!filter_var($_POST["user_email2"], FILTER_VALIDATE_EMAIL)) {
                    $message = "Geçerli bir Email Adresi girin!";
                }
                else{
                    $ad = karakterDuzelt(trim($_POST["user_name"]));
                    $soyad = karakterDuzelt(trim($_POST["user_lastname"]));
                    $tcKimlikNo = $_POST["user_tc"];
                    $dogumYili = $_POST["user_year"];
    
                    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"      => $ad,
                    "soyisim"   => $soyad,
                    "dogumyili" => $dogumYili,
                    "tcno"      => $tcKimlikNo
                    );
                    $adsoyad = $_POST["user_name"]." ".$_POST["user_lastname"];
    
                    $sonuc = tcno_dogrula($bilgiler);
    
                    if($sonuc=="true"){
                        $status = Adm_AddUser($tcKimlikNo,$_POST["user_email"],$_POST["user_email2"],$_POST["user_comment"],$_POST["user_pass"],$adsoyad,$_POST["user_city"],$_POST["user_address"],$_POST["user_telephone"],$_POST["user_group"],$_POST["ShowMachine"],$_POST["ShowServers"],$_POST["ShowUsers"],$_POST["ShowAnnouncements"],$_POST["ShowTickets"],$_POST["ShowPlugins"],$_POST["ShowFiles"]);    
                        
                        if($status > 0) {
                        $message = "Kayıt Başarılı! Yönlendiriliyorsunuz..";    
                        echo '<meta http-equiv="refresh" content="1;URL='.$page->CreatePageLink('Giris').'" />';
                        } else if($status == -1){
                            $message = "Böyle bir kullanıcı sistemde mevcut!!";
                        } else {
                            $message = "Hata Oluştu!";
                        }
                    }
                    else{
                        $message = "Girilen Kimlik Bilgileri Uyuşmuyor!";
                    }
    
                }        
                
            } else {
                $message = "Alanları Kontrol Edin!";
            }
        }
  • 06-03-2022, 05:44:48
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sorgulama fonksiyonunu kullandıktan sonra dönüşü kontrol etmek için print_r($sonuc); komutunu kullanabilir misiniz? Muhtemelen true yerine array döndürüyor olabilir, kontrol etmekte fayda var.
  • 06-03-2022, 06:48:44
    #3
    hocam öncelikle e-devlet in api ne döndürüyor bir fikrim yok ama strip_tags kullanılıp sadece text alınmış yani true false ya da 1 0 gibi protokol ne ise ona göre bir değer döndürüyor/döndürmeli. şu an olduğu haliyle size eğer hata veriyor komutunu veriyorsa tahmin ediyorum ki bu bir kayıt sistemi tc no valid olduktan sonra ki içeriye girmesi şart yani üst taraftaki kontrol tarafı doğru bir şekilde sağlanıyor demek ekleme ve kontrol fonksiyonu olan "Adm_AddUser" içeriğini bilmediğimden çok bir şey diyemem ama 0 dan büyük değerlerde ve -1 olması durumunda vereceği sonucu biliyoruz buna rağmen else dönüyor ise ya 0 ya da başka bir negatif sayı ya da hata alıyorsunuz demektir

    eğer fonksiyon içerisinde return olan değer önceden ön tanımlı ise yani şu şekilde:

    $sonuc = 0;
    ... kodlar ...
    return sonuc;

    şeklinde ise içeride kontrol yaşanırken sonuc değişkeni değişmeden döndürebilir ya da sonuc değişkenine atama yaparken bir hatayla karşılaşıyorsunuzdur sadece attığınız kodlara bakarak çözüm bulamayız maalesef