Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Kullanıcı Giriş
#1
Merhaba. Şuan programda kullanıcı giriş ekranı yapmak istiyorum. Editlere girilen Kullanıcı adı ve şifresini de veritabanından çekmesini istiyorum.
Kullandığım Kod; 


  Kullanici_Query.close;
  Kullanici_Query.SQL.Text:='Select * from Kullanici Where ID= ('+QuotedStr(ID.Text)+') and sifre= ('+QuotedStr(Sifre.Text)+')';
  Kullanici_Query.Open;
  if Kullanici_Query.RecordCount = 0 then
  begin
      Application.CreateForm(TForm1,form1);
      Form1.ShowModal;
  end else
  begin
      ShowMessage('Böyle kullanıcı yok');
  end;


Şuan bir hata almıyorum. Ama çalıştırdığımda şifre hatalı da olsa doğru da olsa direk yeni forma geçiyor. Nerede hatam var acaba?
Don't fear the try!
WWW
Cevapla
#2
Kayıt yoksa, (böyle kullanıcı yoksa ) Formu create et demişsin

if Kullanici_Query.RecordCount = 0 then
 begin
     Application.CreateForm(TForm1,form1);
     Form1.ShowModal;
 end

Böyle yap
if Kullanici_Query.RecordCount <> 0 then
 begin
     Application.CreateForm(TForm1,form1);
     Form1.ShowModal;
 end
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#3
(18-01-2017, Saat: 10:36)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlKayıt yoksa, (böyle kullanıcı yoksa ) Formu create et demişsin

if Kullanici_Query.RecordCount = 0 then
 begin
     Application.CreateForm(TForm1,form1);
     Form1.ShowModal;
 end

Böyle yap
if Kullanici_Query.RecordCount <> 0 then
 begin
     Application.CreateForm(TForm1,form1);
     Form1.ShowModal;
 end
Dediğiniz gibi yaptım oldu. Birde ben 0 yapmışım orayı... bilgi yok ise yapmışım. 0'ı 1 olarak düzeltince de aynı işlemi yaptı. Yeni başladığım için bu yazılım işine hala arada yanlışlıklar yapabiliyorum.. Teşekkür ederim yorumunuz için ^^
Don't fear the try!
WWW
Cevapla
#4
(18-01-2017, Saat: 10:40)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(18-01-2017, Saat: 10:36)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlKayıt yoksa, (böyle kullanıcı yoksa ) Formu create et demişsin

if Kullanici_Query.RecordCount = 0 then
 begin
     Application.CreateForm(TForm1,form1);
     Form1.ShowModal;
 end

Böyle yap
if Kullanici_Query.RecordCount <> 0 then
 begin
     Application.CreateForm(TForm1,form1);
     Form1.ShowModal;
 end
Dediğiniz gibi yaptım oldu. Birde ben 0 yapmışım orayı... bilgi yok ise yapmışım. 0'ı 1 olarak düzeltince de aynı işlemi yaptı. Yeni başladığım için bu yazılım işine hala arada yanlışlıklar yapabiliyorum.. Teşekkür ederim yorumunuz için ^^

Est. yeni başlayanda yıllardır tecrübeli olanlarda böyle hatalara düşebilir.

Ama bir login işlemini ben olsam böyle yapmam, adam şifresini yanlış girse böyle kullanıcı yok hatası alacak yeni kullanıcı açmaya çalışacak muhtemelen kullanıcı adı da uniqe ikinci defa açtırmayacak vs vs

Önce kullanıcı adından arat sadece (kullanıcı çoksa index ekle), Dönen kayıt adetine bakarsın 0 'sa kullanıcı yok,
1 ise devam, bu sefer parolayı kontrol et , eğer eşleşiyorsa devam eşleşmiyor ise şifre hatalı
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#5
Bug 
Ayrıca bu yaptığınız yöntem sql injection riski içerir. Query'nin içersinde yazacağınız sql'i yazın ve dışardan alacağınız değerleri parametre olarak tanımlayın. Query'nizi execute ederken sadece parametreleri set etmeniz yeterli olacaktır.
Cevapla
#6
(18-01-2017, Saat: 11:55)edo Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAyrıca bu yaptığınız yöntem sql injection riski içerir. Query'nin içersinde yazacağınız sql'i yazın ve dışardan alacağınız değerleri parametre olarak tanımlayın. Query'nizi execute ederken sadece parametreleri set etmeniz yeterli olacaktır.


Kesinlikle bu öneriye kulak verin, aksi durumda programınıza az bir sql bilen programınıza giriş yapabilir!
Cevapla
#7
(18-01-2017, Saat: 14:45)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(18-01-2017, Saat: 11:55)edo Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAyrıca bu yaptığınız yöntem sql injection riski içerir. Query'nin içersinde yazacağınız sql'i yazın ve dışardan alacağınız değerleri parametre olarak tanımlayın. Query'nizi execute ederken sadece parametreleri set etmeniz yeterli olacaktır.

Kesinlikle bu öneriye kulak verin, aksi durumda programınıza az bir sql bilen programınıza giriş yapabilir!

+1453

Kullanımına örnek,
with MyQuery do
 begin
  Close;
  SQL.Clear;
  SQL.Add('Select *From user where username=:user');
  ParamByName('user').AsString := pUserName;
  .
  .
  .
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  buton yardımı ile url açmak ve kullanıcı girişi sahin4169 1 74 07-12-2017, Saat: 15:19
Son Yorum: SimaWB
  kullanıcı bilgisi düzenleme ve güncelleme ( ÇÖZÜLDÜ) admin02 8 402 04-09-2017, Saat: 13:01
Son Yorum: admin02
  Kullanıcı arayüzünü nasıl tasarlıyorsunuz ? boreas 8 329 29-07-2017, Saat: 19:22
Son Yorum: Fesih ARSLAN
  kullanici sorgu hattası admin02 19 930 22-06-2017, Saat: 11:25
Son Yorum: Mericx
  delphi 7 ile yazdım programın kullanıcı giriş hattası admin02 7 493 04-04-2017, Saat: 15:24
Son Yorum: admin02



Konuyu Okuyanlar: 1 Ziyaretçi