Fazer login no sistema.
25/09/2004
0
procedure TFrmSenha.BtnLogarClick(Sender: TObject); begin With DmBasedados.IBQuery_Login do Begin Sql.Clear; Sql.Add(´Select lOGIN, SENHA From TabCad_Usuario´); SQL.add(´Where Login like ´+#39+(edtLogin.Text)+39´ and senha like ´+39+(edtsenha.Text)+39´´); Open; end; If Dmbasedados.IBQuery_Login.IsEmpty then Begin Application.MessageBox (´ACESSO NEGADO´,´DADOS INVÁLIDOS´,mb_IconError + mb_OK); EdtLogin.Text:=´´; EdtSenha.Text:=´´; EdtLogin.SetFocus; END else begin MessageDlg(´CONFIRMAMOS SUA SENHA!´, mtInformation, [mbOK],0); end; Application.CreateForm(TFrmPrincipal,FrmPrincipal); FrmPrincipal.ShowModal; FrmPrincipal.Release; end;
Será que alguém ai pode me ajudar com alguma dica ou quem sabe uma forma mais facil.
Peninha.
Peninha
Posts
25/09/2004
Otto
vc pode usar um Locate:
if not Zq1.Locate(´Login;Senha´,VarArrayOf([edLogin.Text, edSenha.Text]), [loCaseInsensitive]) Then begin MessageBox(0,´O Login e ou Senha não confere.´ +13+ ´Favor tente novamente.´,´VALIDAÇÃO´, MB_OK+MB_ICONERROR); edLogin.Clear; edSenha.Clear; edLogin.SetFocus(); end
25/09/2004
Peninha
Por favor se vc poder ser mais especifico eu agradeceria muito.
Infelizmente não consegui assimilar sua resposta.
Obrigado.
25/09/2004
Bruno Belchior
procedure TFrmSenha.BtnLogarClick(Sender: TObject); begin With DmBasedados.IBQuery_Login do Begin Sql.Clear; Sql.Add(´Select lOGIN, SENHA From TabCad_Usuario´); SQL.add(´Where Login = :ParLogin and Senha = :ParSenha´´); SQL.ParamByName(´ParLogin´).Value := EdLogin.Text; SQL.ParamByName(´ParSenha := EdSenha.Text; Open; end; If (Dmbasedados.IBQuery_Login.RecordCount=0) then Begin Application.MessageBox (´ACESSO NEGADO´,´DADOS INVÁLIDOS´,mb_IconError + mb_OK); EdtLogin.Text:=´´; EdtSenha.Text:=´´; EdtLogin.SetFocus; END else begin MessageDlg(´CONFIRMAMOS SUA SENHA!´, mtInformation, [mbOK],0); end; Application.CreateForm(TFrmPrincipal,FrmPrincipal); FrmPrincipal.ShowModal; FrmPrincipal.Release; end;
espero que ajude, a ideia é retornar pelo menos um registro onde a senha é igual o EdSenha.Text e o login é igual ao EdLogin.Text para que o login seja válido...
25/09/2004
Otto
assim, na tabela, vc tem o campo login e o campo senha..
quando vc cadastra um novo usuário, vc criptografa a senha pra poder salvar no banco, ou salva normal, exemplo:
login: otto senha: blablabla // modo normal login: otto senha: df87a890a07ds // modo criptografado
na rotina que te mostrei, faz um locate onde o campo Login é igual ao valor que ta no edLogin e assim com a senha...
seguinte:
if not Query.Locate(´LOGIN;SENHA´,VarArrayOf([editLogin.Text, editSenha.Text]),[loCaseInsensitive]) Then // não achou nada
25/09/2004
Peninha
Verifiquei todas as possibilidadesm mais isto não pode ser possivel, por que se ue for cadastrar um novo usuario ele é gravado.
O que pode estar acontecendo.
25/09/2004
Ariovaldo
A Primeira coisa que é estranho é vc dar um Like no campo usuario e Senha na minha opnião isso não deve existir pois o sistema pode validar coisa que não existe, mas faz o select desta forma:
procedure TFrmSenha.BtnLogarClick(Sender: TObject);
begin
With DmBasedados.IBQuery_Login do
Begin
Sql.Clear;
Sql.Add(´Select lOGIN, SENHA From TabCad_Usuario´);
SQL.add(´Where Login like :login´);
SQL.Add(´And Senha Like :Senha´);
Parambyname(´Login´).asstring := ´¬´ + edtLogin.Text + ´¬´;
Parambyname(´Senha´).asstring := ´¬´ + edtsenha.Text + ´¬´;
Open;
end;
If Dmbasedados.IBQuery_Login.IsEmpty then
Begin
Application.MessageBox (´ACESSO NEGADO´,´DADOS INVÁLIDOS´,mb_IconError + mb_OK);
EdtLogin.Text:=´´;
EdtSenha.Text:=´´;
EdtLogin.SetFocus;
END
else
begin
MessageDlg(´CONFIRMAMOS SUA SENHA!´, mtInformation, [mbOK],0);
end;
Application.CreateForm(TFrmPrincipal,FrmPrincipal);
FrmPrincipal.ShowModal;
FrmPrincipal.Release;
end;
Espero ter ajudado
25/09/2004
Peninha
Vou tentando por aqui.
Obrigado.
25/09/2004
Beppe
with DmBasedados.IBQuery_Login do begin Sql.Clear; Sql.Add(´select LOGIN, SENHA from TabCad_Usuario´); Sql.Add(´where LOGIN = ´ + edtLogin.Text + ´ and SENHA = ´ + edtSenha.Text); Open; try if IsEmpty then begin Application.MessageBox(´ACESSO NEGADO´, ´DADOS INVÁLIDOS´, mb_IconError + mb_OK); edtLogin.Text := ´´; edtSenha.Text := ´´; edtLogin.SetFocus; end else begin MessageDlg(´CONFIRMAMOS SUA SENHA!´, mtInformation, [mbOK], 0); Application.CreateForm(TFrmPrincipal, frmPrincipal); try frmPrincipal.ShowModal; finally frmPrincipal.Release; end; end; finally Close; end; end;
Eu particularmente prefiro abrir uma janela de login dentro do form principal, e não o contrário.
26/09/2004
Peninha
Agradeço a todos aqueles que me ajudaram e até a próxima.
Peninha.
Clique aqui para fazer login e interagir na Comunidade :)