Erro com Login II.. ajuda

2 respostas
U

A minha intenção é buscar os dados do campo senha, dos registros da tabela "operador", no BD, e comparar com o campo o q foi digitado no formulario de login.. e a partir dai, abrir o formulario principal..

Por favor, analisem este codigo e me digam se está errado.. pois naum estou conseguindo fazer a comparação dos dados( o q está no BD e o q digito no formulario de login

//obtendo os dados do form		
logNome 	 	 = txtNome.getText();
logSenha	 	 = txtSenha.getText();
logNovaSenha 	 = txtNovaSenha.getText();
logConfirmaSenha = txtConfirmaSenha.getText();
	
// valida os dados digitados (Login e Senha) do operador
if (logNome != null) {
			
     String querySenha = "SELECT * FROM operador WHERE OpeLogin LIKE '" + logNome + "%'";
     try {
	stm = con.createStatement();
	rs = stm.executeQuery(querySenha);
	registro = rs.next(); // posiciona no 1º registro
	BDSenha = rs.getString("OpeSenha");

	if (logSenha != BDSenha) {
					
	// emite mensagem de erro e volta o foco no txtNome
	JOptionPane.showMessageDialog(null, "Nome ou Senha INCORRETO, tente novamente");

2 Respostas

J

bom, como o seu caso é saber se o login e a senha estão corretos evite usar like, e também passe a senha junto na sql, fica mais ou menos assim:

select * from TABELA where nome='"+login+"' and senha='"+senha+"' ";

//dai vc compara se a consulta retornou alguma coisa eh pq o 
//login está correto, senao nao exite esse usuario com essa senha

if(rs.next())
{
      //logou
}else
{
      //nao logou, usuario ou senha inválidos!
}

é interessante vc tambem pensar em SQL Injection, ou seja, verifique se o retorno foi somente de um registro se for mais de um alguma coisa está errada! =) ahh mas isso é só se seu projeto abranger muiiiiita segurança assim… =)

ps: esqueci de comentar, o jeito que vc estava usando o like ele ia pegar todos os nome que começassem com a string de login, pois vc está passando o % somente no final da string! =)

cya!

U

brigadaum pela dica kara…
vou fazer os teste… e te falo depois… dando certo ou naum…
valew mesmo…

Criado 18 de maio de 2004
Ultima resposta 19 de mai. de 2004
Respostas 2
Participantes 2