2016-02-01 2 views
0

Прежде всего, я хотел бы сказать, что я очень новичок в разработке Android и прямо сейчас, следуя учебному пособию по разработке приложения, которое также использует логин.Андроид-приложение, проверяющее роль пользователя с базой данных

Я уже закончил, чтобы проверить, существует ли пользователь, и приложение будет отображать статус, если логин будет успешным.

Теперь я хотел бы проверить, есть ли у пользователя роль администратора или роль пользователя, которая сохраняется в базе данных.

tqvm в расширенном.

ниже по кодированию

1. MainActivity.java 

package com.example.user.mysqldemo; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 

    EditText UsernameEt, PasswordEt; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     UsernameEt = (EditText) findViewById(R.id.etUserName); 
     PasswordEt = (EditText) findViewById(R.id.etPassword); 
    } 

    public void OnLogin(View view){ 
     String username = UsernameEt.getText().toString(); 
     String password = PasswordEt.getText().toString(); 
     String type = "login"; 


     BackgroundWorker backgroundWorker = new BackgroundWorker(this); 
     backgroundWorker.execute(type, username, password); 
    } 

} 

2.BackgroundWorker.java 

public class BackgroundWorker extends AsyncTask<String,Void,String> { 
Context context; 
AlertDialog alertDialog; 
BackgroundWorker (Context ctx) { 
    context = ctx; 
} 
@Override 
protected String doInBackground(String... params) { 
    String type = params[0]; 
    String login_url = "http://ipaddress/foldername/login.php"; 
    if(type.equals("login")) { 
     try { 
      String user_name = params[1]; 
      String password = params[2]; 
      URL url = new URL(login_url); 
      HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); 
      httpURLConnection.setRequestMethod("POST"); 
      httpURLConnection.setDoOutput(true); 
      httpURLConnection.setDoInput(true); 
      OutputStream outputStream = httpURLConnection.getOutputStream(); 
      BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 
      String post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&" 
        +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8"); 
      bufferedWriter.write(post_data); 
      bufferedWriter.flush(); 
      bufferedWriter.close(); 
      outputStream.close(); 
      InputStream inputStream = httpURLConnection.getInputStream(); 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); 
      String result=""; 
      String line=""; 
      while((line = bufferedReader.readLine())!= null) { 
       result += line; 
      } 
      bufferedReader.close(); 
      inputStream.close(); 
      httpURLConnection.disconnect(); 
      return result; 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return null; 
} 

@Override 
protected void onPreExecute() { 
    alertDialog = new AlertDialog.Builder(context).create(); 
    alertDialog.setTitle("Login Status"); 
} 

@Override 
protected void onPostExecute(String result) { 
    alertDialog.setMessage(result); 
    alertDialog.show(); 
} 

@Override 
protected void onProgressUpdate(Void... values) { 

    super.onProgressUpdate(values); 
} 

}

ответ

0

Вы login.php скрипт должен возвращать значение состояния входа, а также роль человека в ответ. JSON структуры, как это,

{ 
    "status" = 1, //0 or 1 depending on login result 
    "role" = 1  //a number based on the user type 
} 

Затем вы можете разобрать этот результат JSON в onPostExecute и отображения результатов.

@Override 
protected void onPostExecute(String result) { 
    JSONObject jso = new JSONObject(result); 
    int status = jso.getInt("status") 
    int role = jso.getInt("role") 
    if(status == 1){ 
     alertDialog.setMessage(result); 
     alertDialog.show(); 

     if(role == 0){ 
      //User 
     } else if(role == 1){ 
      //Admin 
     } 
    } else{ 
     //Login Failed 
    } 
}