Erro bobo de consulta

0 respostas
P

Boa noite galera.
Sempre que eu mando o usuário e a senha, o que imprime na tela é "Login ou senha invalidos".
Mas pelo que eu vejo está tudo certinho, pelo menos o usuario, senha e a tabela do mysql está tudo certo.
E aproveitando o tópico, como eu faço para colocar mais segurança contra SQL Injection?
Eu dei uma lida em um artigo sobre PreparedStatement mas não entendi nada.

<%@page import="login.Autenticar"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title> Page</title>
    </head>
    <body>
        <%
Autenticar us = new Autenticar();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
boolean status = us.verificarUsuario(login,senha);

if(us.result == true)
    out.println("Login feito com sucesso " + us.nome);
else
    out.println("Login ou senha invalidos");

%>
    </body>
</html>
package login;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Autenticar {

    public Connection conectarBD()
	{
		Connection conn = null;
		try
		{
			Class.forName("com.mysql.Driver.Manager").newInstance();
			String url = "jdbc:mysql:127.0.0.1/test?user=root&password=secreto";
			conn = DriverManager.getConnection(url);
			} catch (Exception e){}
			return conn;}
		public String nome="";
		public boolean result = false;
		public boolean verificarUsuario(String login, String senha)
			{
				String sql = "";
				Connection conn = conectarBD();
				//Instrução SQL
				sql += "select nome, login, senha from clientes ";
                                sql += "where login = " + "'" + login + "';";

				try{
					Statement st = conn.createStatement();
					ResultSet rs = st.executeQuery(sql);
					if(rs.next())
					{
						result = true;
						nome = rs.getString("nome");
					}
					}
					catch (Exception e){}
					return result;
			}
}
Criado 1 de abril de 2011
Respostas 0
Participantes 1