2017-08-10 36 views
-6

ユーザからの入力が2つ必要なログインウィンドウが与えられた場合:username &パスワード。 正常に識別された後、ユーザーはメインウィンドウにリダイレクトされます。 ユーザ名を表示したいが、nullを受け取っている。JAVA - クラス間の値の受け渡し

これは私の現在のコードです: ログインクラス:

private void LoginUser(String username, String password) 
{ 
    user = username; 
    pass = password; 
    Connection conn = null; 
    Statement stmt = null; 
    ResultSet rs = null; 

    try 
    { 
     conn = MainEngine.getConnection(); 
     stmt = conn.createStatement(); 
     rs = stmt.executeQuery("SELECT username FROM users WHERE username ='"+user+"' AND password ='"+getMD5Hex(pass)+"'"); 
     if(rs.next()) // Successful login 
     { 
      Window_AfterLogin window_afterlogin = new Window_AfterLogin(); 
      window_afterlogin.setVisible(true); 
      this.dispose(); 
     } 
     else 
     { 
      label_info.setText("Wrong credentials"); 
     } 
    } 
    catch(Exception e) 
    { 
     System.err.println(e); 
    } 
} 

public String getUserName() 
{ 
    return user; 
} 

注:ユーザーと変数はグローバルで渡します。

Window_AfterLoginクラス:コンストラクタで

public Window_AfterLogin() { 
    initComponents(); 
    Window_Login window_login = new Window_Login(); 
    System.out.println(window_login.getUserName()); 
} 
+0

*タイトル中の単語 – Unrealxqt

+0

*あなたがあなたの質問を編集し、タイトルを変更することができます「で」不要のため申し訳ありませんが... –

+0

どこのメインウィンドウのコードはありますか? – sForSujit

答えて

0

あなたWindow_AfterLogin()コンストラクタは、あなたがwindow_login.getUserName()によって取得しようユーザ名が、あることを意味別のWindow_Login初期化します。あなたの後のログインコードで

あなたが別のフィールドusername追加することができます。

if(rs.next()) // Successful login 
    { 
     Window_AfterLogin window_afterlogin = new Window_AfterLogin(user); 
     window_afterlogin.setVisible(true); 
     this.dispose(); 
    } 

をご LoginUserクラス内

public Window_AfterLogin{ 
    private String username; 

    public Window_AfterLogin(String username){ 
      initComponents(); 
      this.username = username; 
    } 
} 

あなたはそれに応じてコードを変更する必要があります

あなたのアプリケーションはSQLインジェクションに対して脆弱です。準備されたステートメントと、SQLインジェクションが理論上どのように機能するのかを読んで、それらを防ぐことを試みてください。

https://de.wikipedia.org/wiki/SQL-Injection https://www.tutorialspoint.com/javaexamples/jdbc_prepared_statement.htm

0

、あなたはWindow_Loginクラスの新しいインスタンスを作成し、ユーザー名を設定していません。 null -

関連する問題