Tc Kimlik Sisteminde Yeniden Değişme (Parametreler Değişmiş)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Tc Kimlik Sisteminde Yeniden Değişme (Parametreler Değişmiş)

Mesaj gönderen tuanna »

Kod: Tümünü seç

    Data.add('__VIEWSTATE=%2FwEPDwULLTE2MDQ5ODgyNjUPZBYCAgEPZBYCAgUPDxYCHgRUZXh0ZRYMHgZpc1JlYWwFBWZhbHNlHgVpc1BvcwUEdHJ1ZR4HdmFsRXhwcgUKXlxkezEsMTE%2FJB4JZGVjUGxhY2VzBQItMR4HZGVjU2lnbgUBLh4PcGxhY2VzQmVmb3JlRGVjBQIxMWRkHha45QHisaW7NaOybBaCuh2rNeE%3D');
    Data.Add('ctlIdentityNumber=xxxxxxxxxxx');
    Data.Add('ctlVerify=T.C.+Kimlik+No+Do%C4%9Frula');
    Data.add('__EVENTVALIDATION=' +
      '%2FwEWAwKGl8rJDwKL86WHCgKc85DLBZ29R04PF4rx6e6qrJigXkjY9Vp9');
Ben sanırım yeni parametreler bunlar ama bende

302 Hatasına sebep oluyor...

Netten Araştırdığımda ...ise

"302 Moved temporarily Aranan belge geçici olarak başka bir adrese aktarıldı
"

Demekmiş Sizce nasıl yapmamız gerekiyor...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Bir INI Dosyasına aşağıdakileri yaz.. Sonra bunları okuyarak kullan...

Kod: Tümünü seç

[HASH]
EV=%2FwEWAwL41ceRDwKL86WHCgKc85DLBZGfmXpj%2FrhwyeWRyoKtPnYTLnnp
VS=%2FwEPDwULLTE2MDQ5ODgyNjUPZBYCAgEPZBYCAgUPDxYCHgRUZXh0ZWRkZLUJrmVZqn1oSEQPqHBPOPiZa8PL
// TC_NoParse( ) işlemini zaten yapıyorsundur...

Kod: Tümünü seç

Procedure TCKimlikNoyaGore_Sorgula( TCNo:String; IdHttp:TIdhttp );
Var
  INI : TINIFile;
  URL, Gelen,
  EV, VS : String;
begin
  INI := TINIFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
  EV := INI.ReadString('HASH', 'EV', '');
  VS := INI.ReadString('HASH', 'VS', '');
  INI.Free;
  URL    := Format('http://tckimlik.nvi.gov.tr/Web/VerifyIdentityNumber.aspx?__EVENTVALIDATION=%s&__VIEWSTATE=%s&ctlVerify=T.C.+Kimlik+No+Doğrula&ctlIdentityNumber=%s', [EV, VS, TCNo] );
  Gelen  := IdHttp.Get( URL );
  TC_NoParse( Gelen );
end;
Resim
Resim ....Resim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

başka bir çözüm bulmak lazım böle olmuyor neden yapı değişmiş....
veya yapı değişmelerini programa dinamik nasıl yansıtacağız...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Nasıl olmuyor. Ben bunu böyle kullanıyorum ve şu an faal...
Resim
Resim ....Resim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

ya birincisi ini kısmında hangi dosyadan okuyacanı nasıl belirlediğni anlamış değilim...
İkincisi post metoduna ne oldu...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

:lol: Pardon bunu bildiğini varsaymıştım...

ChangeFileExt fonksiyonu bir dosyanın uzantısının verilen yeni belli bir uzantıyla değişmiş halini verir.

ParamSTR(0) ise çalışan programının tam yolunu verir.

Kod: Tümünü seç

INI := TINIFile.Create(ChangeFileExt(ParamStr(0), '.INI'));
satırı ne oluyor bu durumda ? senin programının adı neyse, onun INI uzantılı hali oluyor... :wink: Örneğin Proje1.EXE ise burada açılan INI dosyası Proje1.INI oluyor...

- Programınızlar ilgili aynı isimli bir INI dosyası genelde olur ve kullanılır olduğundan anlatmayı ihmal etmişim.
Resim
Resim ....Resim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

çözdüm
peki neden post metodu değilde get kullanıyorsun hocam...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Tercihler ve yoğurt yeme olayı... :lol: :lol: :lol:

- GET kabul ediyorsa POST ile neden uğraşayım. Tek satırda halledebilirken bir da parametre tanımla vs. ne gerek var ?
Resim
Resim ....Resim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

yiğit neden yoğurt yerken post yoğurdunu denemiyor...

peki
bu arada post çalışıyor....
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Tek satırda halledebilirken bir da parametre tanımla vs. ne gerek var ?

- Sen seviyorsun sanırım Bir StringList create edip parametreleri girmeyi. Ben fazlalıklara gelemem. Az ve öz satırda iş bitirmeyi severim...
Resim
Resim ....Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

tuanna yazdı:başka bir çözüm bulmak lazım böle olmuyor neden yapı değişmiş....
veya yapı değişmelerini programa dinamik nasıl yansıtacağız...
- Bunu dinamik nasıl yaparız'ı sormuşsun, önce bir tur site navigate edilir, html kaynak kodu alınır ve içerisinde bu EventValidation ve ViewState değerleri parse edilerek INI dosyasına kaydedilir.

- Çoklu sorgu yapılacaksa ardarda bu INI'deki kullanılır. İki farklı değil de bir fonksiyon içine koyar da her seferinde HASH okuması işlemi yavaşlatır...

- Bunun önüne geçmek için INI dosyasına sezonun ilk okuması olduğunı ifade eden bir kod daha ekleyebilirsin.

- Mesela ben program ilk açılırken INI'deki sezon değerini 0 yapıyorum. Internet TCKimlik sorgulaması yapacağımda bu değer 0 ise öce hash okuyup INI'ye kaydedip bu değeri 1 yapıyorum. Sonra her seferinde bu değer 1 ise direkt mevut Hash Code'u kullan diyorum. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

mrmarman yazdı:- Tek satırda halledebilirken bir da parametre tanımla vs. ne gerek var ?

- Sen seviyorsun sanırım Bir StringList create edip parametreleri girmeyi. Ben fazlalıklara gelemem. Az ve öz satırda iş bitirmeyi severim...
sevgiden ziyade ben öğrenmek istiyorum ne olduğunu öğreneyim ondan sonra kime seveceğime karar veririm...
Siz hayal edin...Biz yapalım TuannaSoft...
palandoken
Üye
Mesajlar: 151
Kayıt: 16 Eki 2006 10:43
Konum: ERZURUM

Mesaj gönderen palandoken »

S.A.

Arkadaşlar bu TC No olayını nasıl yapıyorsunuz?Biraz açıklar mısınız?

Daha önceki bu konuda yayınlanmış mesajlara baktım.Hepsini denedim ama hata veriyor.

Acemi birine göre anlatırsanız sevinirim.

Saygılar...
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@palandoken

- Bir web sayfasında Delphi içinden sorgu nasıl yapılır ? Bunun hakkında forumda yüzlerce konu başlığı bulacaksın.

- Şimdi arama yaparak bunları etüd et ve bir proje oluştur. GET veya POST ile bir sorgu gönderdiğin herhangi bir WEB sayfasından (google olabilir, T.C.Kimlik sayfası olabilir) bir MEMO'ya, sorguladığın sayfanın HTML Kaynak kodunu almayı dene.

- Bunu başardığında test kodlarını buraya yaz ki ikinci aşama yani PARSE (dilediğin kısımları ayıklama da denebilir) olayını anlatalım. Bu şekilde kalıcı bilgiye erişirsin. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@tuanna Son sorunu kaçırmışım...

- Tercihler, şartlara göre değerlendirilir. :idea: GET veya POST tercihi T.C.Kimlik validate olayında eş seviyede önceliktedir. Burada öne çıkan seçimlik durum, daha az kod yazarak işi çözümleme olayıdır.

- PHP vb. uğraşanlar bilirler (ben PHP'den örnek vericem, ASPX'de de farklı değildir), sen de uğraştıysan hak vereceksin;
$_GET ile değişken çağıran site fonksiyonları varsa, bilginin GET method ile gönderilmesi gerekmektedir. $_POST ile değişken çağıran site fonksiyonları varsa POST method. Yani buna karar veren ana merci biz değil, hedef kitlemiz olan T.C.Kimkik sorgusu yaptığımız server'dir :lol:

- Programcı olarak bizlere düşen ise, karşı tarafın hangi methodu kabul ettiğini etüd etmek, ona göre davranmakdır. Ben etüdümü yaptım, her iki method ile de kabul edildiğini tespit ederek bana en kolay kod yazma imkanı sunan GET method'u kullanmayı yeğledim.

- Geniş ifadeyle olay bundan ibaret.

- GET ile POST arasındaki ana fark nedir ?

- GET ile yapılan sorgularda; açık seçik olarak Browser adres satırından bile sorgu ve parametre geçebilirsiniz. Yani Internet Explorer adres satırını incelerseniz, GET ile yapılan sorgularda tüm parametreleri ve değerledini adres satırında gözlemleyebilirsiniz. Bir iki değişiklik yaparak sorguya farklı yönler verebilir ard arda farklı sorguları yeniden yapabilirsiniz.

- POST ile yapılan sorgularda geçilen parametreler bir HTML form içerisinden yapılır ve gizlidir. HTML kaynak kodlarını inceleyerek bu parametreler elde edilebilir.

- GET method'da adres satırından işlem yapıldığından 4096 idi sanırım tam hatırlamıyorum ama karakter sınırı vardır. POST ile ise sınır yoktur denebilecek kadar geniştir.

- Bu karater sınırlamaları nedeniyle bu çalıştığımız forum gibi uzun metinler transfer edilecek formlarda POST method tercih edilir.

- Umarım açıklayıcı olmuştur. Çünkü yavaş yavaş hatırlıyorum, başka bir başlıkta da aynı bu soruyu bir çok kere sormuştun. Orada yazacaktım ama sonu gelince çözümünü buldun ve tatmin oldun varsayımında bulunmuştum. 8)
Resim
Resim ....Resim
Cevapla