kullanıcı adı ve parolayı databaseden sorgulayıp onaylamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
memoli79
Üye
Mesajlar: 29
Kayıt: 05 Nis 2007 01:29

kullanıcı adı ve parolayı databaseden sorgulayıp onaylamak

Mesaj gönderen memoli79 »

Herkese kolay gelsin.

kullanıcı formda dbedit lara kullanıcı adını ve parolasını yazıp
butona tıkladığında giriş yapacak
burda nasıl bir kodlama yapılmalı

Adoquery ile yapmak istiyorum.

Database access
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

procedure TSktForm.BitBtn1Click(Sender: TObject);
var kullaniciMY,kullaniciQ,passQ,passMY: string;
begin
  if EDKullanici.Text='' then
      begin
        ShowMessage('Kullanıcı adı boş geçilemez! Giriniz..');
        EDKullanici.SetFocus
       end else
   begin
              kullaniciQ:=edKullanici.text;
     passmy:=edpass.Text;
        KulKontrolQuery.SQL.Text:='select kullanici_isim, sifre from tablom where kullanici_isim='''+kullaniciQ+'''';
     KulKontrolQuery.Active:=true;
     kullaniciMY:=KulKontrolQuerykullanici_isim.value;
     passQ:=KulKontrolQuerysifre.Value;
          if kullaniciQ<>kullaniciMY then
   begin
        ShowMessage('Kullanıcı Adı Hatalı!! Tekrar Deneyin..');
        EDKullanici.SetFocus;
        end else
        if passQ<>passMY then
   begin
        ShowMessage('Şifre Hatalı!! Tekrar Deneyin..');
        EDPass.SetFocus
   end  else
   begin
          KulKontrolQuery.Close;
/// .........işlemler /////////////
                  end;
    end;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

bu arada

arkadaşın yazdığı koda ek olarak önerim user ve şifrelerin tutulduğu tabloyu standart db modullerden ve connection nesnesinden ayrı tutmanızdır. böylece kullanıcı onayı için tüm tabloları açmanız gerekmez. ayrıca gene öneri olarak o formda dbedit gibi vt duyarlı kontrolleri kullanmanızı önermem
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
memoli79
Üye
Mesajlar: 29
Kayıt: 05 Nis 2007 01:29

Mesaj gönderen memoli79 »

arkadaşlar kod için teşekkür ederim.
Aşağıdaki gibi bir kod yazdım.

database de user tanımlı olduğu halde kullanıcı adına tanımlı useri girdiğimde Yanlış Kullanıcı Adı Girdiniz mesajı çıkıyor.

Fakat kullanıcı adından sonra şifreyide tanımlı olduğu gibi girersem sisteme login oluyor.

Problem ne olabilir.


Bu arada editler db edit değil yanlış yazmışım.

Conari arkdaşın yazmış olduğu kodu çalışıtırdığımda UserId hatası veriyor.

Anlayamadım.


Kod: Tümünü seç

procedure Tuser_form.tamamClick(Sender: TObject);
var
user:string;
sifre:String;
begin
user:=user_form.user.text;
sifre:=user_form.sifre.text;

  if (user='') and (sifre='')then
begin
showmessage('Kullanıcı Adı ve Şifre Giriniz');
user_form.user.SetFocus;
user_form.Show;
end
 else
begin

with fdm.Adoqusertbl do
begin

fdm.Adoqusertbl.sql.Clear;
fdm.Adoqusertbl.sql.Add('select * from usertbl where User='''+user+''' and sifre='''+sifre+'''');
fdm.Adoqusertbl.open;
fdm.Adoqusertbl.Active:=true;
end;




if user<> fdm.Adoqusertbl.FieldByName('User').AsString then
begin
showmessage('Yanlış Kullanıcı Adı Girdiniz ');
user_form.user.setfocus;
user_form.Show;
end;

if sifre<> fdm.Adoqusertbl.FieldByName('Sifre').AsString then
begin
showmessage('Yanlış Şifre Girdiniz ');
user_form.sifre.setfocus;
user_form.Show;
end;


 if (user= fdm.Adoqusertbl.FieldByName('User').AsString) and
 (sifre= fdm.Adoqusertbl.FieldByName('Sifre').AsString) then
begin
fdm.Adoqusertbl.Close;
main_form.loginlabel.visible:=true;
main_form.kullanici.Caption:=user_form.sifre.Text;
main_form.Show;
user_form.Visible:=False;
user_form.Hide;
end;
end;
end;
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

sağ kulağınızı tersten gösteriyorsunuz.

yuklardaki select ten donen recordcount=0 ise zaten kullanıcı yok demekrtir. kalan kontrolleri çok uzatıyorsunuz.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
memoli79
Üye
Mesajlar: 29
Kayıt: 05 Nis 2007 01:29

Mesaj gönderen memoli79 »

ikutluay delphide yeniyim

yuklardaki select ten donen recordcount=0 ise zaten kullanıcı yok demekrtir. kalan kontrolleri çok uzatıyorsunuz.

kısmını kod üzerinden açıklarsanız sevinirim.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

benim verdiğim kodda UserID diye bir alan yok Sanırım Senin Query nde önceden eklediğin alanlar kalmış ve o alanları bir yerde kullanıyorsun.
Kullanmıyor isen Queryini alanlarını temizle ve tekrar ekle

Ayrıca @ikutluay bunun için uyarmış.

Kod: Tümünü seç

with fdm.Adoqusertbl do 
begin 

fdm.Adoqusertbl.sql.Clear; 
fdm.Adoqusertbl.sql.Add('select * from usertbl where User='''+user+''' and sifre='''+sifre+''''); 
fdm.Adoqusertbl.open; 
fdm.Adoqusertbl.Active:=true; 
end; 
Arkadaş demişki burada kayıt 0 dönüyosa hata vardır.
Ayrıca

Kod: Tümünü seç

fdm.Adoqusertbl.open; 
fdm.Adoqusertbl.Active:=true; 
bu satırlardan birini de kaldır gereksiz.

Yine ayrıca Sorgu kısıtlamasını sadece Kullanıcı adı ile yapın
yoksa kullanıcı adımda mı hatalı diyecektir :wink: bu sorguya göre
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
memoli79
Üye
Mesajlar: 29
Kayıt: 05 Nis 2007 01:29

Mesaj gönderen memoli79 »

arkadaşlar çok teşekkür ederim.

hatayı bulup düzelttim.

ellerinzie sağlık.

Kolay gelsin
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

son ahlini yapıştırınki ilerde başkalarıda faydalansın
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

ikutluay yazdı:son ahlini yapıştırınki ilerde başkalarıda faydalansın
+1
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

iki gün geçmiş cevap alamamışız... not alalım bunu....
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
memoli79
Üye
Mesajlar: 29
Kayıt: 05 Nis 2007 01:29

Re: kullanıcı adı ve parolayı databaseden sorgulayıp onaylamak

Mesaj gönderen memoli79 »

kusura bakmayın cevap geç oldu.

çalışan kod aşağıdaki gibidir.

procedure Tuser_form.tamamClick(Sender: TObject);
var kullaniciMY,kullaniciQ,passQ,passMY: string;
begin
if user.Text='' then
begin
ShowMessage('Kullanıcı adı boş geçilemez!Lütfen Giriniz..');
user.SetFocus
end else
begin
kullaniciQ:=user.text;
passmy:=sifre.Text;
fdm.Adoqusertbl.SQL.Text:='select User,Sifre from usertbl where User='''+kullaniciQ+'''';
fdm.Adoqusertbl.Active:=true;
kullaniciMY:=fdm.Adoqusertbl.FieldByName('user').AsString;
passQ:=fdm.Adoqusertbl.FieldByName('sifre').AsString;

if kullaniciQ<>kullaniciMY then
begin
ShowMessage('Kullanıcı Adı Hatalı!! Tekrar Deneyin..');
user.SetFocus;
end else
if passQ<>passMY then
begin
ShowMessage('Şifre Boş veya Hatalı!! Tekrar Deneyin..');
sifre.SetFocus
end else
begin


main_form.loginlabel.visible:=true;
main_form.kullanici.Caption:=user_form.user.Text;
main_form.Show;
user_form.Visible:=False;
user_form.Hide;
Cevapla