2017-03-10 3 views
0
ResultSet rs; 
System.out.println("rs"); 
try 
{ 
    rs = j.getData("select ulevel from user where ulevel='"+eid+"'"); 
    System.out.println("try"); 
    //until this point it works properly. But after this point it doesn't work as I thought even though I logged in as a user whose user level (ulevel) is not admin. 
    if(rs.next()) 
    { 
     System.out.println("rs.next"); 
     if(rs.getString(2).equals("Admin")) 
     { 
      System.out.println("if admin"); 
      home.setEnabled(true); 
      job.setEnabled(true); 
      employee.setEnabled(true); 
      user.setEnabled(true); 
      machine.setEnabled(true); 
      branch.setEnabled(true); 
     } 
     else if(rs.getString(2).equals("user")) 
     { 
      System.out.println("else if"); 
      home.setEnabled(true); 
      machine.setEnabled(true); 
      System.out.println("user can't see"); 
     } 
     else 
     { 
      System.out.println("else"); 
     } 
    } 
} 
catch (Exception ex) 
{ 
    Logger.getLogger(Home_Page.class.getName()).log(Level.SEVERE, null, ex); 
} 

}がなぜコード上から


を実行していないない場合、私は、そのユーザレベル(ulevel)がユーザである通常のユーザが見ることができるページの数を制限しようとしました。私は試しました

jbutton_name.setvisible(false);  
jbutton_name.setEnabled(false)   

でもです。しかし、それらの両方は、通常のユーザーのためのそれらのボタンを無効にするために有効ではありません。
誰でも私を助けてください???前もって感謝します。

+0

「例外」をスローしたりキャッチしたりしないでください。 "SQLインジェクション攻撃"を探します。 –

答えて

4

rs.getString(2) 2は、結果列のインデックス(最初の列に1から始まる)

あるしかし、あなたは唯一のバッククエリ

select ulevel from user 

から1列を取得しているとして、それは動作しません

javadocs

のSQLExceptionを1として

- columnInde場合xは無効です。データベースアクセス エラーが発生した場合、またはこのメソッドがクローズされた結果で呼び出された場合

はまた、私はあなたがPreparedStatementsetString SQLインジェクション攻撃の可能性を避けるために、あなたのSQL生成のための連結を避けるために使用することを示唆している設定。

+0

ありがとうございました...私はそれらを試してみます.. :) – Jay

+0

cool。それがうまくいくなら、この答えを受け入れてください。 –

+0

最後に、なぜこれが動作しないのかを知ることができます。 rs.next()= falseの値。それが理由です。 – Jay

1

質問が結果を返さなかったと思います。それがあった場合rs.getString(2)は例外をスローする必要があります。

+0

ありがとうございます。あなたは私を正しい方向に向ける。 :)私のrs.next()の値はfalseです。それを真実にするのに苦労しています。 :) – Jay

+0

クール。あなたは答えとしてこれを受け入れることができますか? :-) – Keaz

+0

ここは新しいですね。あなたの返事の横にある上の矢印をクリックすればOKかどうか教えていただけますか? (私はそうだった) – Jay

関連する問題