Avatar billede langkiller Nybegynder
20. september 2012 - 10:53 Der er 4 kommentarer og
1 løsning

java og mysql - simpelt loginsystem

har følgende kode til at tjekke på nogle indtastede oplysninger, brugernavn og password:


import java.sql.*;

public class CheckLogin {


    public String getLogin(String typedUsername, String typedPassword) {
        String returnMes = "";
       
        try {
           
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bum","root","");
       
            PreparedStatement statement = con.prepareStatement("SELECT id FROM users WHERE email = '"+typedUsername+"' AND password = '"+typedPassword+"'");
            ResultSet result = statement.executeQuery();

                try {
                    int id = result.getInt(1);
                    returnMes = ""+id;
                }
                catch(NumberFormatException e) {
                    returnMes = "wronglogin";
                }
           
        } catch (Exception e) {
            System.out.println("fejl i CheckLogin");
        }

        return returnMes;
    }
   
}



Den bliver ved med at "catche". ved ikke helt hvad der er galt, nogen der kan hjælpe?
Avatar billede langkiller Nybegynder
20. september 2012 - 11:04 #1
Og den ene "Exception e" er ændret til "Exception f"
Avatar billede langkiller Nybegynder
20. september 2012 - 12:24 #2
Den gik ned og catchede og udskrev "fejl i CheckLogin" fordi jeg havde glemt at implementere en mysql-connector.

Men det funger stadig ikke rigtig :/
Avatar billede langkiller Nybegynder
20. september 2012 - 12:49 #3
har fået det til at virke, hvis nogen er interesseret er den korrekte kode:


package userSystem;

import java.sql.*;

public class CheckLogin {

    public String getLogin(String typedUsername, String typedPassword) {
        String returnMes = "";
       
        try {
           
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bum","root","");
       
            PreparedStatement statement = con.prepareStatement("SELECT * FROM users WHERE email = '"+typedUsername+"' AND password = '"+typedPassword+"'");
            ResultSet result = statement.executeQuery();

            if (!result.next() ) {
                returnMes = "wronglogin";
            }
            else {
                String id = result.getString(1);
                returnMes = id;
            }
           
                con.close();
               
        } catch (Exception e) {
            System.out.println("fejl i CheckLogin");
        }

        return returnMes;
    }
   
}
Avatar billede langkiller Nybegynder
20. september 2012 - 12:49 #4
luk
Avatar billede arne_v Ekspert
20. september 2012 - 16:15 #5
Nogle ? og setParameter kald ville nok ogsaa vaere en god ide.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester