Hallo, ich bin gerade dabei ein LoginSystem zu für meine Anwendung zu realisieren.
Zum Login-System: Jeder Benutzer erhält beim Anlegen eines Benutzers einen Standardpasswort. Dieser soll beim ersten Login vom User verändert werden.
Java Klasse - Login.java:
Besitzt der User ein Standardpasswort öffnet sich ==> Hauptmenue_user_stdpw (Alle anderen
Abfragen funktionieren einwandfrei).
Java Klasse: Hauptmenue_user_stdpw
Nun soll in diesem Fenster das Passwort für den User verändert werden. Das Problem was ich nun habe ist: Ich habe kein Bezug mehr auf den User! Ich weiß nicht, wie ich den Wert (value_3 <== Benutzername) für die Where Bedingung herbekommen soll, da diese sich in der Klasse oben (login.java) in PRIVATE befinden.
Wie bekomme ich hier nun value_3 mit dem Benutzernamen befüllt, der sein Standardpasswort ändern möchte?
Vielen Dank im Voraus! (Ist sehr wichtig für meine Bachelorarbeit).
Zum Login-System: Jeder Benutzer erhält beim Anlegen eines Benutzers einen Standardpasswort. Dieser soll beim ersten Login vom User verändert werden.
Java Klasse - Login.java:
Besitzt der User ein Standardpasswort öffnet sich ==> Hauptmenue_user_stdpw (Alle anderen
Abfragen funktionieren einwandfrei).
Java:
private void cmd_loginActionPerformed(java.awt.event.ActionEvent evt) {
String sql_admin = "SELECT * FROM login WHERE benutzername=? AND passwort=? AND typ='admin' ";
String sql_user_standardpw = "SELECT * FROM login WHERE benutzername=? AND passwort=? AND passwort='1234' AND typ='user' ";
String sql_user = "SELECT * FROM login WHERE benutzername=? AND passwort=? AND typ='user' ";
try{
String holen = null;
holen = rs2.getString("Benutzername");
pst1 = conn.prepareStatement(sql_admin);
pst1.setString(1, txt_benutzername.getText());
pst1.setString(2, txt_passwort.getText());
rs1 = pst1.executeQuery();
pst2 = conn.prepareStatement(sql_user_standardpw);
pst2.setString(1, txt_benutzername.getText());
pst2.setString(2, txt_passwort.getText());
rs2 = pst2.executeQuery();
pst3 = conn.prepareStatement(sql_user);
pst3.setString(1, txt_benutzername.getText());
pst3.setString(2, txt_passwort.getText());
rs3 = pst3.executeQuery();
if(rs1.next()){
JOptionPane.showMessageDialog(null, "Die Zugangsdaten sind richtig!");
Hauptmenue_admin admin_fenster = new Hauptmenue_admin();
admin_fenster.setVisible(true);
this.setVisible(false);
} else if(rs2.next()) {
JOptionPane.showMessageDialog(null, "Willkommen User! Bitte ändern Sie im nächsten Schritt Ihren Standardpasswort.");
Hauptmenue_user_stdpw user_stdpw_fenster = new Hauptmenue_user_stdpw();
user_stdpw_fenster.setVisible(true);
this.setVisible(false);
} else if (rs3.next()){
JOptionPane.showMessageDialog(null, "Willkommen User!");
Hauptmenue_user user_fenster = new Hauptmenue_user();
user_fenster.setVisible(true);
this.setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "Die Zugangsdaten sind nicht richtig!\n\n"
+ "Bei Problemen kontaktieren Sie bitte den Administrator.");
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
Java Klasse: Hauptmenue_user_stdpw
Nun soll in diesem Fenster das Passwort für den User verändert werden. Das Problem was ich nun habe ist: Ich habe kein Bezug mehr auf den User! Ich weiß nicht, wie ich den Wert (value_3 <== Benutzername) für die Where Bedingung herbekommen soll, da diese sich in der Klasse oben (login.java) in PRIVATE befinden.
Wie bekomme ich hier nun value_3 mit dem Benutzernamen befüllt, der sein Standardpasswort ändern möchte?
Java:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try{
// Hier wird zwei Textfelder verglichen: Neues Passwort & Neues Passwort bestätigen)
String value_1 = txt_pass1.getText();
String value_2 = txt_pass2.getText();
// Hier fehlt mein value_3 ;-(
String sql ="UPDATE login SET login.Passwort='"+value_1+"' WHERE login.Benutzername='"+value_3+"' ";
if (value_1.equals(value_2)) {
pst1=conn.prepareStatement(sql);
pst1.execute();
JOptionPane.showMessageDialog(null, "Neues Passwort wurde gespeichert!");
Hauptmenue_user user_fenster = new Hauptmenue_user();
user_fenster.setVisible(true);
this.setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "Die Passwörter sind nicht identisch!");
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
Vielen Dank im Voraus! (Ist sehr wichtig für meine Bachelorarbeit).