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.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

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:
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.merhaba @burak  arkadaşım,

nacizane bir iki tavsiyem olacak:

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

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

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:
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

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 Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. 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
  Form içinde exe nasıl çalıştırılır? Cyb3r 2 379 04-07-2019, Saat: 09:53
Son Yorum: Cyb3r
  Bu listeyi hangi komponentle yapabilirim? samsaros@gmail.com 10 928 24-05-2019, Saat: 14:24
Son Yorum: samsaros@gmail.com
  [Çözüldü] - Google Cloud Platformunda OAuth 2.0 ile Dinamik Token Nasıl Alınır? Fesih ARSLAN 14 1.200 21-05-2019, Saat: 13:11
Son Yorum: Bay_Y
  Yavru formda sifre turetirken hata alıyorum. burak 12 943 06-05-2019, Saat: 02:14
Son Yorum: OBK
  Bir query'i birden fazla yerde nasıl kullanırım ? boreas 4 333 24-04-2019, Saat: 12:27
Son Yorum: Abdullah ILGAZ



Konuyu Okuyanlar: 1 Ziyaretçi