Delphi Can

Orjinalini görmek için tıklayınız: Delphi Örnek Login Ekranı
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
procedure TForm1.Button1Click(Sender: TObject);
begin
FDQuery1.Open('select * from kullanicilar where kadi='+#39+kullanici.Text+#39+' and ksifre='+#39+sifreniz.Text+#39) ;

if FDQuery1.RecordCount > 0 then  //Eğer bilgi varsa
begin
form1.Hide;
form3.Show;
end
else
if FDQuery1.RecordCount <=0 then
  begin
   showmessage('Kullanıcı Adı veya Şifreniz Hatalı');
  end;
end;

oOBoWX.png

Yardımcı olması dileği ile... Blush 

Proje dosyasına ve programa ulaşmak için tıklayınız.
(05-05-2018, Saat: 12:08)mehmetalpgozbasi Adlı Kullanıcıdan Alıntı: [ -> ]
procedure TForm1.Button1Click(Sender: TObject);
begin
FDQuery1.Open('select * from kullanicilar where kadi='+#39+kullanici.Text+#39+' and ksifre='+#39+sifreniz.Text+#39) ;

if FDQuery1.RecordCount > 0 then  //Eğer bilgi varsa
begin
form1.Hide;
form3.Show;
end
else
if FDQuery1.RecordCount <=0 then
  begin
   showmessage('Kullanıcı Adı veya Şifreniz Hatalı');
  end;
end;

oOBoWX.png

Yardımcı olması dileği ile... Blush 
[/url]
[url=https://drive.google.com/open?id=1MVX7p4ysTFPf_yeaLyHp5wTjTdGE55c_]Proje dosyasına ve programa ulaşmak için tıklayınız.
Selamlar.

Select sorgusunu aşağıdaki gibi parametre ile de kullanabilirsiniz. 

FDQuery1.Open('select * from kullanicilar where kadi = :kadi and ksifre = :ksifre', [kullanici.Text, sifreniz.Text]) 
(05-05-2018, Saat: 12:13)Slowhand Adlı Kullanıcıdan Alıntı: [ -> ]
(05-05-2018, Saat: 12:08)mehmetalpgozbasi Adlı Kullanıcıdan Alıntı: [ -> ]
procedure TForm1.Button1Click(Sender: TObject);
begin
FDQuery1.Open('select * from kullanicilar where kadi='+#39+kullanici.Text+#39+' and ksifre='+#39+sifreniz.Text+#39) ;

if FDQuery1.RecordCount > 0 then  //Eğer bilgi varsa
begin
form1.Hide;
form3.Show;
end
else
if FDQuery1.RecordCount <=0 then
  begin
   showmessage('Kullanıcı Adı veya Şifreniz Hatalı');
  end;
end;

oOBoWX.png

Yardımcı olması dileği ile... Blush 
[/url]
[url=https://drive.google.com/open?id=1MVX7p4ysTFPf_yeaLyHp5wTjTdGE55c_]Proje dosyasına ve programa ulaşmak için tıklayınız.
Selamlar.

Select sorgusunu aşağıdaki gibi parametre ile de kullanabilirsiniz. 

FDQuery1.Open('select * from kullanicilar where kadi = :kadi and ksifre = :ksifre', [kullanici.Text, sifreniz.Text]) 

Haklısınız. Teşekkürler
Elinize sağlık. Ama ilk kullanımda sql injection saldırısı ile yetkisiz kişiler login olabiliyor. herhalde slowhand in paylaştığı yöntemle sql injection çalışmaz. ben ilk paylaşılan yöntemle login panel oluşturuyorum fakat edit te tırnak işareti varsa sil komutu ile tırnak işareti girilmesini engelliyorum. Çünkü sql injection tırnak işareti ile yapılıyor.
(05-05-2018, Saat: 13:48)hakanharbeli Adlı Kullanıcıdan Alıntı: [ -> ]Elinize sağlık. Ama ilk kullanımda sql injection saldırısı ile yetkisiz kişiler login olabiliyor. herhalde slowhand in paylaştığı yöntemle sql injection çalışmaz. ben ilk paylaşılan yöntemle login panel oluşturuyorum fakat  edit te tırnak işareti varsa sil komutu ile tırnak işareti girilmesini engelliyorum. Çünkü sql injection tırnak işareti ile yapılıyor.
Haklısınız. Fakat ben SQL incetion üzerinde çalıştım bu projede fakat herhangi bir açık oluşmadı ya da ben tam olarak yapamadım.
(05-05-2018, Saat: 13:54)mehmetalpgozbasi Adlı Kullanıcıdan Alıntı: [ -> ]
(05-05-2018, Saat: 13:48)hakanharbeli Adlı Kullanıcıdan Alıntı: [ -> ]Elinize sağlık. Ama ilk kullanımda sql injection saldırısı ile yetkisiz kişiler login olabiliyor. herhalde slowhand in paylaştığı yöntemle sql injection çalışmaz. ben ilk paylaşılan yöntemle login panel oluşturuyorum fakat  edit te tırnak işareti varsa sil komutu ile tırnak işareti girilmesini engelliyorum. Çünkü sql injection tırnak işareti ile yapılıyor.
Haklısınız. Fakat ben SQL incetion üzerinde çalıştım bu projede fakat herhangi bir açık oluşmadı ya da ben tam olarak yapamadım.

Merhaba,
Bir SQL ifadesinin doğrudan veri tabanına gönderilmesi;  @hakanharbeli nin belirttiği gibi her zaman risklere açıktır. 
Parametrik gönderimler daha güvenilir ve Enjectionlara karşı iyi bir tedbirdir.
Hepinize teşekkür ederim. Bu konu üzerinde çalışıp  gereken güncellemeleri yapacağım.
hacı abi eskiden ben böyle konular açınca eleştiri yapılınca sinirim bozulur , hevesim kırılırdı.
Sonradan bunların önemli olduğunu gördüm. iyi dinle.Söyleyeceklerim benim görüşüm.
Öyle yerlerde öyle korumalara kafa patlatırdım ki tam anlamıyla muhteşem olurdu.Ama onunla uğraşırken başka yerleri açmışım haberim yok.
Şimdi Application crack işlemini yapan , Sql Enjeksiyonu ön tarama olarak yarım saat deneyip geçiyor.
hatta çok ciddi application crack yapan bir tanıdığım vardı.Adam Sql Enjeksiyon hakkında bir tek 'or' komutunu bilirdi Smile

1-) Mesaj verme kısmı tehlike! çünkü cracklemeye orayı tespit ederek başlarlar.

2-) = komutunu değiştirerek çok rahat kırıldığını gördüm

3-) Bu tür kısımları düzenli yazmak yerine saçma saçma ordan oraya ordan oraya birsürü işlemler yaparak bağlanmanın kırılma süresini uzattığını gördüm.

şimdilik aklıma gelen bunlar. inşAllah yardımcı olabilmişimdir.
Selam arkadaslar boyle bir tasarım hazırladım bunu dokunmatik pos pc de kullanacagım, fikirlerinizi merak ediyorum. Altındaki diğer formlarda bu mantıkla hazırladı.
sadece gölgeli butonlar yapmayı düşündüm ama uygun bir yöntem bulamadım yada bir komponent bulamadı buradaki buttonlar cxbutton.
kolay gelsin tüm yazılımcı kardeşlerime.
(18-09-2019, Saat: 11:34)tcoder34 Adlı Kullanıcıdan Alıntı: [ -> ]Selam arkadaslar boyle bir tasarım hazırladım bunu dokunmatik pos pc de kullanacagım, fikirlerinizi merak ediyorum. Altındaki diğer formlarda bu mantıkla hazırladı.
sadece gölgeli butonlar yapmayı düşündüm ama uygun bir yöntem bulamadım yada bir komponent bulamadı buradaki buttonlar cxbutton.
kolay gelsin tüm yazılımcı kardeşlerime.

Selam

Görselinizi beğendim. Ben yazmış olduğum  panelde, touchkeyboard bileşenini kullanmıştım.

[attachment=699]