Le bout de code qui pose probleme...
String PRE_STMT = "SELECT cat FROM UserDB WHERE nom = '"+u_nom+"' AND mdp = '"+u_pwd+"'";
PreparedStatement stmt = con.prepareStatement(PRE_STMT);
ResultSet r = stmt.executeQuery();
// gestin des droits
// bosser sur panel et faire du setVisible
if (r.next()) {
System.out.println("Vous etes un utilisateur de categorie : "+r.getString(1));
// ajouter les boutons correspondant a la cat
// supprimer ceux en trop...
if (r.getString(1).equals("client" )) {
System.out.println("un" );
switch (u.getRight()) {
case 0 : f.displayButton("client" ); break;
case 3 : f.removeButton("admin" );
case 2 : f.removeButton("agent" );
}
u.setRight(1);
}
else if (r.getString(1).equals("agent" )) {
System.out.println("deux" );
switch (u.getRight()) {
case 3 : f.removeButton("admin" ); break;
case 0 : System.out.println("affi client" ); f.displayButton("client" ); case 1 : System.out.println("affi agent" ); f.displayButton("agent" ); break;
}
u.setRight(2);
}
else if (r.getString(1).equals("admin" )) {
System.out.println("trois" );
switch (u.getRight()) {
case 0 : f.displayButton("client" ); case 1 : f.displayButton("agent" ); case 2 : f.displayButton("admin" ); break;
}
u.setRight(3);
}
else {System.out.println("quatre" );}
r.close();
} |
j'ai cree une table UserDB
[fixed]CREATE TABLE UserDB (nom char(12),
mdp char(8),
cat char(6) CHECK (cat='client' OR cat='agent' OR cat='admin'),
PRIMARY KEY(nom, mdp));[\fixed]
j'ai une petit IG avec des champs ou je rentre nom et mot de passe...
j'affiche la cat renvoyee, elle est correcte...
mais les "if (r.getString(1).equals("client" ))" font n'importe quoi...
seul le client est bien reconnu...
quand je me log en admin ou en agent, l'appli renvoie "quatre"
une idee? 