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.
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
  [Çözüldü] - Google Cloud Platformunda OAuth 2.0 ile Dinamik Token Nasıl Alınır? Fesih ARSLAN 14 521 6 saat önce
Son Yorum: Bay_Y
  Yavru formda sifre turetirken hata alıyorum. burak 12 408 06-05-2019, Saat: 02:14
Son Yorum: OBK
  Bir query'i birden fazla yerde nasıl kullanırım ? boreas 4 122 24-04-2019, Saat: 12:27
Son Yorum: Abdullah ILGAZ
  Windows Oturumu Açılmadan Program Nasıl Çalışır theSinan 15 939 15-04-2019, Saat: 00:15
Son Yorum: theSinan
  StatusBar nasıl resim ekliyebilirim? burak 6 320 12-04-2019, Saat: 18:55
Son Yorum: SimaWB



Konuyu Okuyanlar: 1 Ziyaretçi