私はユーザーログインページに取り組んでいます。管理者が管理者セクションにアクセスできるようにしたいのですが、通常のユーザーはアクセスできないようにします。次のコードは機能しますが、管理者以外のユーザーがログインすると、間違ったパスワード エラーが発生し、正しいページに送信されます。否定的な答えと肯定的な答えを許可する場合、ネストされたものに何か問題があると思います。この件に関して何かお役に立てば幸いです。
try {
String sql="Select * from Users1";
String host ="jdbc:derby://localhost:1527/Nash";
String uName = "CON";
String uPass = "smokes";
Connection con = DriverManager.getConnection(host, uName, uPass);
Statement stmt=con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
String user= userName.getText();
String pwd= password.getText();
while(rs.next()) {
String uname=rs.getString("User_name");
String pass=rs.getString("Password");
String admin1=rs.getString("admin");
if ((user.equals(uname)) && (pwd.equals(pass)))
{
mainPanel.setVisible(true);
blankContent.setVisible(true);
adminButton.setEnabled(false);
receiptContent.setVisible(false);
memberContent.setVisible(false);
securityPanel.setVisible(false);
}
if ((user.equals(uname)) && (pwd.equals(pass))&&(admin1.equals("y")))
{
mainPanel.setVisible(true);
blankContent.setVisible(true);
adminButton.setEnabled(true);
receiptContent.setVisible(false);
memberContent.setVisible(false);
securityPanel.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null, "User name and password do"
+ " not match!","ALERT!", JOptionPane.ERROR_MESSAGE);
}
} } catch (SQLException ex) {
Logger.getLogger(program.class.getName()).log(Level.SEVERE, null, ex);
}
EDIT 以下は編集されたコードリンクです ---> 新しい改訂されたコードリンク