![]() |
|
Kullanıcı Giriş - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: Kullanıcı Giriş (/showthread.php?tid=567) |
Kullanıcı Giriş - Mericx - 18-01-2017 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? Kullanıcı Giriş - yhackup - 18-01-2017 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 Cvp: Kullanıcı Giriş - Mericx - 18-01-2017 (18-01-2017, Saat: 10:36)yhackup Adlı Kullanıcıdan Alıntı: Kayıt yoksa, (böyle kullanıcı yoksa ) Formu create et demişsinDediğ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 ^^ Kullanıcı Giriş - yhackup - 18-01-2017 (18-01-2017, Saat: 10:40)cudyfoster Adlı Kullanıcıdan Alıntı:(18-01-2017, Saat: 10:36)yhackup Adlı Kullanıcıdan Alıntı: Kayıt yoksa, (böyle kullanıcı yoksa ) Formu create et demişsinDediğ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ı Kullanıcı Giriş - edo - 18-01-2017 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. Cvp: Kullanıcı Giriş - pro_imaj - 18-01-2017 (18-01-2017, Saat: 11:55)edo Adlı Kullanıcıdan Alıntı: 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. Kesinlikle bu öneriye kulak verin, aksi durumda programınıza az bir sql bilen programınıza giriş yapabilir! Cvp: Kullanıcı Giriş - yhackup - 18-01-2017 (18-01-2017, Saat: 14:45)pro_imaj Adlı Kullanıcıdan Alıntı:(18-01-2017, Saat: 11:55)edo Adlı Kullanıcıdan Alıntı: 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. +1453 Kullanımına örnek,
with MyQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select *From user where username=:user');
ParamByName('user').AsString := pUserName;
.
.
.
|