ajuda para limitar as tentativas de login
bom dia
preciso de ajuda para limitar as tentativas de login pelo usuário
procedure TFrmLogin.BtnEntrarClick(Sender: TObject);
begin
FBQuery_Login.Open;
if ((FBQuery_Login.Locate('login', edtUsuario.Text, [])) and (FBQuery_Login.Locate('senha', edtSenha.Text, []))) then
begin
GuardaLogin:= EdtUsuario.Text;
FDQuery_Logado.Insert;
FDQuery_LogadoCOD_USUARIO.Value:= FBQuery_LoginCODIGO.Value;
FDQuery_LogadoSUCESSO.Value:= 'SIM';
FDQuery_Logado.Post;
FBQuery_Login.Close();
ModalResult:= mrOk;
end
else
if (edtUsuario.Text = '') or (edtSenha.Text= '') then // limitar as tentativas de tentar entrar sem colocar o usuário ou senha
begin
ShowMessage('Campo de usuário ou senha vazio !');
edtUsuario.SetFocus;
end
else // limitar as tentativas de entrar com senha ou usuário inválidos
begin
ShowMessage('Usuario ou senha inválido!');
GuardaLogin:= EdtUsuario.Text;
FDQuery_Logado.Insert;
FDQuery_LogadoSUCESSO.Value:= 'NÃO';
FDQuery_LogadoCOD_USUARIO.Value:= FBQuery_LoginCODIGO.Value;
FDQuery_Logado.Post;
edtSenha.Clear;
end;
end;
o código já roda perfeito, o detalhe é que da forma como está as tentativas de campos vazios e valores inválidos para (senha e usuário) não limitam o usuário que está digitando
eu quero que ao tentar 3 vezes para campos vazios e 3 vezes para valores inválidos seja exibida uma mensagem que o programa será encerrado e fim
preciso de ajuda para limitar as tentativas de login pelo usuário
procedure TFrmLogin.BtnEntrarClick(Sender: TObject);
begin
FBQuery_Login.Open;
if ((FBQuery_Login.Locate('login', edtUsuario.Text, [])) and (FBQuery_Login.Locate('senha', edtSenha.Text, []))) then
begin
GuardaLogin:= EdtUsuario.Text;
FDQuery_Logado.Insert;
FDQuery_LogadoCOD_USUARIO.Value:= FBQuery_LoginCODIGO.Value;
FDQuery_LogadoSUCESSO.Value:= 'SIM';
FDQuery_Logado.Post;
FBQuery_Login.Close();
ModalResult:= mrOk;
end
else
if (edtUsuario.Text = '') or (edtSenha.Text= '') then // limitar as tentativas de tentar entrar sem colocar o usuário ou senha
begin
ShowMessage('Campo de usuário ou senha vazio !');
edtUsuario.SetFocus;
end
else // limitar as tentativas de entrar com senha ou usuário inválidos
begin
ShowMessage('Usuario ou senha inválido!');
GuardaLogin:= EdtUsuario.Text;
FDQuery_Logado.Insert;
FDQuery_LogadoSUCESSO.Value:= 'NÃO';
FDQuery_LogadoCOD_USUARIO.Value:= FBQuery_LoginCODIGO.Value;
FDQuery_Logado.Post;
edtSenha.Clear;
end;
end;
o código já roda perfeito, o detalhe é que da forma como está as tentativas de campos vazios e valores inválidos para (senha e usuário) não limitam o usuário que está digitando
eu quero que ao tentar 3 vezes para campos vazios e 3 vezes para valores inválidos seja exibida uma mensagem que o programa será encerrado e fim
Emanuel Gonçalves
Curtidas 0
Melhor post
Luiz Freitas
17/09/2015
Olá Emanuel, blz?
Você pode criar duas variáveis globais do tipo inteiro e ir acumulando as tentativas quando o usuário tentar entrar com os campos vazios ou errar usuário ou senha, no fim da procedure BtnEntrarClick você verifica se uma dessas variáveis é igual a 3, se sim, você exibe uma mensagem para o usuário e dá um application.terminate.
Qualquer coisa, pergunta ai... :)
t++
Você pode criar duas variáveis globais do tipo inteiro e ir acumulando as tentativas quando o usuário tentar entrar com os campos vazios ou errar usuário ou senha, no fim da procedure BtnEntrarClick você verifica se uma dessas variáveis é igual a 3, se sim, você exibe uma mensagem para o usuário e dá um application.terminate.
Qualquer coisa, pergunta ai... :)
t++
GOSTEI 1
Mais Respostas
Emanuel Gonçalves
17/09/2015
Olá Emanuel, blz?
Você pode criar duas variáveis globais do tipo inteiro e ir acumulando as tentativas quando o usuário tentar entrar com os campos vazios ou errar usuário ou senha, no fim da procedure BtnEntrarClick você verifica se uma dessas variáveis é igual a 3, se sim, você exibe uma mensagem para o usuário e dá um application.terminate.
Qualquer coisa, pergunta ai... :)
t++
Você pode criar duas variáveis globais do tipo inteiro e ir acumulando as tentativas quando o usuário tentar entrar com os campos vazios ou errar usuário ou senha, no fim da procedure BtnEntrarClick você verifica se uma dessas variáveis é igual a 3, se sim, você exibe uma mensagem para o usuário e dá um application.terminate.
Qualquer coisa, pergunta ai... :)
t++
obrigado Luiz
segue o código rodando
procedure TFrmLogin.BtnEntrarClick(Sender: TObject);
begin
FBQuery_Login.Open;
if ((FBQuery_Login.Locate('login', edtUsuario.Text, [])) and (FBQuery_Login.Locate('senha', edtSenha.Text, []))) then
begin
GuardaLogin:= EdtUsuario.Text;
FDQuery_Logado.Insert;
FDQuery_LogadoCOD_USUARIO.Value:= FBQuery_LoginCODIGO.Value;
FDQuery_LogadoSUCESSO.Value:= 'SIM';
FDQuery_Logado.Post;
FBQuery_Login.Close();
ModalResult:= mrOk;
end
else
if (edtUsuario.Text = '') and (edtSenha.Text= '') then
begin
ShowMessage('Campo de usuário ou senha vazio !');
edtUsuario.SetFocus;
Inc(tentativasVazio);
end
else
begin
inc (tentativasUsuario);
ShowMessage('Usuario ou senha inválido!');
GuardaLogin:= EdtUsuario.Text;
FDQuery_Logado.Insert;
FDQuery_LogadoSUCESSO.Value:= 'NÃO';
FDQuery_LogadoCOD_USUARIO.Value:= FBQuery_LoginCODIGO.Value;
FDQuery_Logado.Post;
edtSenha.Clear;
EdtSenha.SetFocus;
end;
if (tentativasVazio = 3)or(tentativasUsuario = 3) then
begin
ShowMessage('Essa apalicação será encerrada!');
Application.Terminate;
end;
end;
GOSTEI 1