Ir ao conteúdo
  • Cadastre-se

Controle de Acesso com Erro - Delphi


andreluizcds

Posts recomendados

Pessoal beleza!! o negocio é o seguinte:

criei um sistema com Delphi 7 e banco de dados Acess 2007.
fiz meu controle de acesso que por sinal estava funcionando (pelo menos eu achava)!

ele é da seguinte maneira:

Tenho um form que chamo de Acesso, nele eu coloquei dois componentes "Edit" com "Label" pra idendtificação, e dois botões "BitBtn".

Um botão é de sair, possui apenas o "close;" só pra fechar o form.

O outro possui um código que valida o usuário e a senha digitada nos Edit's para eu entrar no form principal, mas acontece que com o usuário admin eu consigo entrar, mas quando eu cadastro outros usuários (estão sendo gravados no banco perfeitamente) não consigo logar.
O estranho é que tem hora que funciona, eu fecho o programa, abro novamente e tento logar com outro usuário sem ser o admin e funciona. Mas depois eu tento novamente com usuário diferente e não dá certo.
Fica aparecendo a mensagem "Usuário ou senha incorretos" que é a mensagem que eu defini no código.

Tenho uma tabela chamada Login no meu banco, com os campos Usuario (chave primaria), Senha e Nivel (nivel de acesso) todos três são do tipo texto.

Abaixo segue o código que estou usando, alguém pode me ajudar?

procedure TFrmAcesso.BtnEntraClick(Sender: TObject);  begin  if (EdtUsuario.Text = DM.Login.FieldByName('Usuario').AsString)     and     (EdtSenha.Text = DM.Login.FieldByName('Senha').AsString) then  begin    FrmPrincipal.Show;    FrmAcesso.Visible := False;  end  else    Application.MessageBox('Usuário e Senha Incorretos!','Acesso Negado',MB_ICONERROR)end;

Se alguém puder me ajudar, tem como me explicar de uma forma simples? eu sou meio leigo com esse Delphi.

 

Link para o comentário
Compartilhar em outros sites

você n consegue logar, pois esta sempre no primeiro registro, você deve ir do primeiro registro ate o ultimo e verificar se em algum ta esse usuário. tente esse código.

*Obs. Não testei o código então pode haver algum erro.


procedure TFrmAcesso.BtnEntraClick(Sender: TObject);
begin
DM.Login.first; //VAMOS PARA O PRIMEIRO REGISTRO
While not DM.Login.eof do //ENQUANTO A tabela não estiver no ultimo registro, faça:
begin
if (EdtUsuario.Text = DM.Login.FieldByName('Usuario').AsString) and (EdtSenha.Text = DM.Login.FieldByName('Senha').AsString) then
begin
FrmPrincipal.Show;
FrmAcesso.Visible := False;
exit;
end;
DM.Login.next; //vamos para o próximo registro
end;
Application.MessageBox('Usuário e Senha Incorretos!','Acesso Negado',MB_ICONERROR)
end;

aqui tem umas dicas se quiser:

*procure liberar o formulário FrmAcesso da memoria, tem um tópico aqui no fórum q demonstra uma maneira muito boa de login, só que é com interbase mas n muda nada

* porque você esta usando o método SHOW? O formulário FrmPrincipal foi criado e você nao esta usando, so usa a partir do momento que o usuário loga.

abraço!

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

maneira simples, utilizadas em sistemas profissionais e rapida.

este DM.Login provavelmente é uma Query então simples

o que você tem que fazer é

nesta query você tem que definir dois parâmetros um pro usuario e outro pra senha buscando da tabela login e quando logar passar esses dois parâmetros tipo


DM.Login.Close;
DM.Login.ParamByName('login').AsString := edtUsuario.Text;
DM.Login.ParamByName('senha').AsString := edtSenha.Text;
DM.Login.Open;
// e depois verificar se achou alguma coisa
if not DM.Login.IsEmpty then
begin
FrmPrincipal.Show;
FrmAcesso.Visible := False;
end
else
Application.MessageBox('Usuário e Senha Incorretos!','Acesso Negado',MB_ICONERROR);

mais simples impossível

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!