2012-01-09 6 views
5

内いずれかを使用してユーザが入力した資格情報を検証する方法。 userが新規の場合は、usernamepasswordを選択して登録することもできます。そして、このregistrationの一部が機能しました。私は今<code>login button</code>を押すことで、その<code>username</code>と<code>password</code>で<code>Sample login application</code>で<code>user</code>でき<code>login</code>に取り組んでいるSQLiteデータベース


私の実際の質問は:どのように私は、ユーザーがdatabaseに保存されているものとcredentialsに入っ比較します。

私はusername(un)password(pwd)は別のjava file login.javaから来ているこの

public void ValidateLogin(String un, String pwd) 
    { 
     SELECT_FROM = "SELECT u_name, u_pwd FROM" + table_name + "WHERE u_name == " + un + "AND u_pwd ==" + pwd; 
     db.execSQL(SELECT_FROM); 
    } 

として、ユーザー名とPWDを選択しSELECTクエリを使用していました。今


私は成功した移行が成功したログイン後のページをviewprofileする作るだろうか教えてください?

+4

、代わりに行のクエリの、カーソルを使用することです:1)SQLは、Javaではありません== SQLのために無効な構文です。代わりに1 =だけ使用してください。 SQLでは、代入と検証として機能します。 2)un&pwdは文字列であり、tics( ')so ...に含める必要がありますWHERE u_name =' "&un +" 'そしてu_pwd =' "+ pwd +" '"3)このテクニックはそれは自分自身をSQLインジェクションに開放します。代わりに、パラメータを使用します。 4)最後に、返す行数をチェックする必要があります。 rowcount == 1の場合はtrueを返し、そうでない場合はfalseを返します。 – xQbert

+1

また、アンドロイドはデータベースをアプリケーションのディレクトリに格納しますが、パスワードをクリアテキストとして保存することはお勧めしません。代わりにパスワードのハッシュ関数を使用することを提案します。 – Yury

+0

あなたの答えはxQbertとyuryに感謝しています... – JAaVA

答えて

1
You can use `cursor` with `rawquery` to validate username and password in one boolean type of method 

    public boolean ValidateLogin(String un, String pwd) 
     { 
     boolean chklogin=false;  
     c = db.rawQuery("SELECT u_name, u_pwd FROM " + table_name + " WHERE u_name = '"+ un + "' AND u_pwd ='"+ pwd + "'", null); 

     if(c==null) 
     { 
      //set boolean var to false 
       chklogin=false; 
      //message no such records 
     } 

     else 
     { 
      //set boolean var to true 
       chklogin=true; 
       c.moveToFirst(); 
     } 

     return chklogin; //boolean var 
} 
0

最善の方法は、私は右のオフ4つの問題を参照してください

String[] selectionArgs = {un,pwd}; 
Cursor cursor = db.query(table_name, {"u_name", "u_pwd"} , "u_name=? and u_pwd=?", selectionArgs , null, null, null); 

if (cursor.moveToNext()){ 
    //Success 
}else{ 
    //Failure 
} 
cursor.close(); 
関連する問題

 関連する問題