HilarYo Posted May 24, 2014 at 05:18 PM Report #556887 Posted May 24, 2014 at 05:18 PM Boas tardes, estou a criar um sistema de login, onde tenho um formulário de entrada, com os campos utilizador e password, e um botão entrar. O meu problema é que na tabela da base de dados tenho varios utilizadores e passwords e só consigo entrar com o primeiro, alguem pode ajudar? No botão entrar tenho o seguinte código: private void BEntrarActionPerformed(java.awt.event.ActionEvent evt) { try{ ligabd.abrirLigacaoBD(); ligabd.stmt = ligabd.con.createStatement(); String SQL; SQL = "select * FROM bdc_users"; ligabd.rs = ligabd.stmt.executeQuery(SQL); ligabd.rs.first(); if (txUser.getText().equals(ligabd.rs.getString("user")) && txPassword.getText().equals(ligabd.rs.getString("password"))){ JOptionPane.showMessageDialog(null, "Utilizador Ligado"); }else { JOptionPane.showMessageDialog(null, "Utilizador Inválido"); } }catch (SQLException ex){ Logger.getLogger(entrada.class.getName()).log(Level.SEVERE, null, ex); } Obrigado, Cumprimentos
nelsonr Posted May 24, 2014 at 08:40 PM Report #556891 Posted May 24, 2014 at 08:40 PM (edited) Boas, o que o teu comando SQL está a a fazer é ir buscar todos os registos da tabela bdc_users, ficando posicionado no primeiro registo. Julgo que o que falta ai é filtrar pelo utilizador definido. Não programo em java, mas deve ser algo assim: SQL = "select * FROM bdc_users WHERE user='"+txtUser.getText()+"'"; ligabd.rs = ligabd.stmt.executeQuery(SQL); if(ligabd.rs.next()) { if (txUser.getText().equals(ligabd.rs.getString("user")) && txPassword.getText().equals(ligabd.rs.getString("password"))) { JOptionPane.showMessageDialog(null, "Utilizador Ligado"); } else { JOptionPane.showMessageDialog(null, "Utilizador Inválido"); } } (claro que convem fazer o sanitize do txtUser, para evitar sql injection) Edited May 24, 2014 at 08:44 PM by nelsonr
HilarYo Posted May 25, 2014 at 07:17 PM Author Report #556935 Posted May 25, 2014 at 07:17 PM Muito obrigado, assim funciona na perfeição 😄 Quanto a prevenção de sql injection, é necessario fazer o sanitize, já andei a pesquisar mas nao encontro nada de jeito, onde posso encontrar informação acerta disso? Mais uma vez obrigado Cumprimentos
I-NOZex Posted May 25, 2014 at 07:48 PM Report #556938 Posted May 25, 2014 at 07:48 PM (edited) http://bobby-tables.com/java.html https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java Edited May 25, 2014 at 07:51 PM by I-NOZex B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now