Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
while ile sifre kontrolunu nasıl yapabilirim.
#1
veritabanın aldıgım kullanıcıadı ve sifreyi 3 kez yanlış girilirse programı kapatması istiyorum.Şöyle bir sey denedim ancak calışmıyor.
Ll0v8z.png
Cevapla
#2
Say değişkenini arttıran kod yok. Her zaman 0 oluyor böyle yazarsan.

Say değişkenini her denemede bir arttırman gerekiyor. Yani

 
say:=say+1

 gibi.

İyi çalışmalar.
kisisel_logo_dark.png
WWW
Cevapla
#3
procedure TForm1.Button1Click(Sender: TObject);
{$J+}
  const
    sayac: Byte = 1;
{$J-}
begin
  if (sayac<=3) then
  begin
    with ADOQuery1 do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add('SELECT TOP 1 * FROM giris');
      SQL.Add('WHERE kadi=' + QuotedStr(Edit1.Text) );
      SQL.Add('AND ksif=' + QuotedStr(Edit2.Text) );
      Active := True;

      if RecordCount=1 then
      begin
        ShowMessage('TEBRIKLER...');
        Form2.ShowModal;
      end else
      begin
        ShowMessage('TEKRAR DENEYINIZ !!!');
        Inc(sayac);
      end;

    end; //WITH SONU

  end else
  Application.Terminate;

end;

Cevapla
#4
merhaba @burak arkadaşım,

nacizane bir iki tavsiyem olacak:

Her nekadar arkadaşlar cevabı net bi şekilde verselerde fazla bilgi göz çıkarmaz

P1zgp6.png

son olarak kodları daha anlaşılır yazarsan bu hem senin için hemde kodlara bakanlar veya düzenleyenler için büyük kolaylık sağlayacaktır.
örnek:
pbVLjJ.jpg

gibi ...

Amacım kırmak , işgüzarlık etmek ya da çokbilmişlik değil. Sadece fikir vermek yardımcı olmak -olabildiğimiz kadar-
Cevapla
#5
(03-03-2019, Saat: 01:32)burak Adlı Kullanıcıdan Alıntı: veritabanın aldıgım kullanıcıadı ve sifreyi 3 kez yanlış girilirse programı kapatması istiyorum.Şöyle bir sey denedim ancak calışmıyor.
Ll0v8z.png

Merhaba,


Madem şifre 3 defa hatalı girişe bile önlem alınmaya çalışıyor;

Şifre kontrolünü bu şekilde yapmamalısınız Kadi='''+edit1.text+''' parametre olarak göndermelisiniz yoksa injection'a maruz kalabilirsiniz.

İyi çalışmalar.
Cevapla
#6
(04-03-2019, Saat: 10:50)forumcuali Adlı Kullanıcıdan Alıntı: merhaba @burak  arkadaşım,

nacizane bir iki tavsiyem olacak:

Her nekadar arkadaşlar cevabı net bi şekilde verselerde fazla bilgi göz çıkarmaz

P1zgp6.png

son olarak kodları daha anlaşılır yazarsan bu hem senin için hemde kodlara bakanlar veya düzenleyenler için büyük kolaylık sağlayacaktır.
örnek:
pbVLjJ.jpg

gibi ...

Amacım kırmak , işgüzarlık etmek ya da çokbilmişlik değil. Sadece fikir vermek yardımcı olmak -olabildiğimiz kadar-

Merhaba,

Aslında hafta sonu ben de bu cevap için bir iki satır yazmış, ama sonradan yanlış anlaşılırım düşüncesiyle vazgeçmiştim. Madem @forumcuali bir şeyler yazdı, ben de yazayım:

- Kodda {$J+} gibi sadece uyumluluk amacı için eklenmiş bir derleyici direktifi kullanılıyor. Writeable Constant, adı üzerinde, biraz oksimoron bir tanım. Bunun doğrusu private bir değişken tanımlamak ve onu kullanmak
- Kodda ciddi bir SQL injection açığı var
- Çok kişisel bir yaklaşım, ama WITH kullanımını tavsiye etmiyorum. Hele de yazılan kodda ADOQuery1'in bazı değerlerine debug ederken bakmak isteyebilirsiniz.

Yukarıdaki maddeler bilen bir programcı için önemli değil, ama bu başlığı açan arkadaşın acemi olduğunu tahmin ediyorum, çünkü soru basit bir soru. Henüz yolun başında olan arkadaşlara da örnekleri daha doğru göstermek iyi olabilir.

İyi çalışmalar
Cevapla
#7
@Bahadir.Alkac arkadaşım bilen,tecrübeli arkadaşların -ne kadar önemsiz görünürse görünsün- kodlardaki açıkları veya iyileştirmeleri söylemeleri taraftarıyım...
ben bu tip önerilerden çok şey öğrendim;öğrenmeye devam ediyorum. Bununla birlikte şu dönemde insanlar çok kırılgan. Bunuda göz önünde bulundurarak yazıyorum,konuşuyorum... Size ve bilgilerini saklamadan bizimle paylaşan arkadaşlar çok teşkkür ediyorum...
Bir hatam olurda biri bunu bana söylerse; bence o benim en iyi dostumdur.
Cevapla
#8
Gördüğüm konu şu şekilde:

   
  • Lütfen Forma Resim Nasıl Yüklenir? konusuna bakın.
  • Kodlarınızı lütfen kod olarak paylaşın, resim olarak değil. 
  • Ayrıca 3 kere dene sonra break et bir 3 kere daha dene bana çok güvenlikli gelmedi. Deneme sayısını bir tabloda tutmalı, üç başarısız denemeden sonra şifreyi bloke etmelisiniz. Umarım şu andaki kodunuzun bir güvenlik önlemi olmadığının farkındasınızdır  Rolleyes
Cevapla
#9
- Sayın Başkan, sataşma var ve bu konuda söz almak istiyorum.
- Buyrun Deniz Bey, süreniz 3 dk.
- Teşekkür ederim Sayın Başkan.

- Sayın Başkan, saygı değer millet vekilleri; sözlerime başlamadan önce...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uygulamaya responsive görünüm nasıl kazandırabilriz ? delphicim 0 218 04-01-2024, Saat: 15:24
Son Yorum: delphicim
  Delphi 7 ye göre MB Döviz kurları nasıl alırız maydin60 7 1.057 31-12-2023, Saat: 02:18
Son Yorum: maydin60
  ReadProcessMemory ile veri okuma nasıl yapılır eraendless 2 450 07-09-2023, Saat: 00:35
Son Yorum: veteran
  ARRAYi nasıl for'la dönerim. PREDATOR 16 10.041 26-08-2023, Saat: 14:33
Son Yorum: veteran
  Şifre: maile tetiklenmiştir. ikurt07 3 647 21-03-2023, Saat: 12:41
Son Yorum: ikurt07



Konuyu Okuyanlar: 1 Ziyaretçi