首页 > 解决方案 > 使用php和mysql数据库登录android应用程序

问题描述

我正在尝试使用 android 中的 php 和 mysql 数据库与四个不同的用户登录,如果有任何用户使用电子邮件和密码登录,我会尝试从 mysql 数据库中获取他们的信息,例如(姓名、地址、ID 等) . 我希望每当这四个用户中的任何用户登录时,他们都可以从数据库中看到自己的信息,例如(姓名、地址、ID 等)

我已经尝试将这些用户与我提供的代码中的用户类型和 if-else 条件分开。

public class LoginActivity extends AppCompatActivity {

    private static final String TAG="LoginActivity";

    private TextView createaccount;
    private EditText Ausername,Apassword;
    private Button LoginButton;
    private Context mContext;


    //URLS class
    //ALL URLs
    URLs urLs;




    RelativeLayout relativeLayout1,relativeLayout2;
    Handler handler=new Handler();
    Runnable runnable=new Runnable() {
        @Override
        public void run() {

            relativeLayout1.setVisibility(View.VISIBLE);
            relativeLayout2.setVisibility(View.VISIBLE);

        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        urLs = new URLs();


        if (SharedPrefManager.getInstance(getApplicationContext()).isLoggedIn()){

            finish();
            Intent intentD = new Intent(LoginActivity.this, DashboardActivity.class);
            startActivity(intentD);
        }

        relativeLayout1 = findViewById(R.id.rel3);
        relativeLayout2 = findViewById(R.id.rel2);
        Ausername = findViewById(R.id.etuname);
        Apassword = findViewById(R.id.etpass);
        LoginButton = findViewById(R.id.loginbutton);
        handler.postDelayed(runnable, 2000);
        createaccount = findViewById(R.id.tvregistration);

        createaccount.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(LoginActivity.this, Rigistration_Option.class);
                startActivity(intent);

            }

        });


        LoginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                userLogin();


            }
        });
    }
        private void userLogin(){
            //first getting the values
            final String email = Ausername.getText().toString();
            final String password = Apassword.getText().toString();

            //validating inputs
            if (TextUtils.isEmpty(email)) {
                Ausername.setError("Please enter your username");
                Ausername.requestFocus();
                return;
            }

            if (TextUtils.isEmpty(password)) {
                Apassword.setError("Please enter your password");
                Apassword.requestFocus();
                return;
            }

            //if everything is fine

            class UserLogin extends AsyncTask<Void, Void, String> {

                ProgressBar progressBar;

                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                    progressBar = findViewById(R.id.progressbar);
                    progressBar.setVisibility(View.VISIBLE);
                }

                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);
                    progressBar.setVisibility(View.GONE);


                    try {
                        //converting response to json object
                        JSONObject obj = new JSONObject(s);

                        //if no error in response
                        if (!obj.getBoolean("error")) {
                            Toast.makeText(getApplicationContext(), obj.getString("message"), Toast.LENGTH_SHORT).show();

                            //getting the user from the response
                            JSONObject userJson = obj.getJSONObject("user");

                            //creating a new user object
                            CA_SIGNUP_GTST user = new CA_SIGNUP_GTST(
                                    userJson.getInt("id"),
                                    userJson.getString("name"),
                                    userJson.getString("email"),
                                    userJson.getString("mobile"),
                                    userJson.getString("address")
                            );

                            //storing the user in shared preferences
                            SharedPrefManager.getInstance(getApplicationContext()).userLogin(user);

                            //starting the profile activity
                            finish();

                            Intent intentD = new Intent(LoginActivity.this, DashboardActivity.class);
                            startActivity(intentD);

                        } else {
                            Toast.makeText(getApplicationContext(), "Invalid username or password", Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

                @Override
                protected String doInBackground(Void... voids) {
                    //creating request handler object
                    RequestHandler requestHandler = new RequestHandler();

                    HashMap<String, String> params = new HashMap<>();

                    URLs urLs = new URLs();

                    if (urLs.equals("cma_login")) {

                        params.put("email", email);
                        params.put("password", password);

                        return requestHandler.sendPostRequest(URLs.CMA_LOGIN, params);
                    }

                    else if (urLs.equals("ca_login")){

                        params.put("email", email);
                        params.put("password", password);

                        return requestHandler.sendPostRequest(URLs.CA_LOGIN, params);

                    }

                    else if (urLs.equals("cs_login")){

                        params.put("email", email);
                        params.put("password", password);

                        return requestHandler.sendPostRequest(URLs.CS_LOGIN, params);

                    }
                    else if (urLs.equals("adv_login")){

                        params.put("email", email);
                        params.put("password", password);

                        return requestHandler.sendPostRequest(URLs.ADV_LOGIN, params);

                    }


                    return null;
                }
            }

            UserLogin ul = new UserLogin();
            ul.execute();
        }
    }

我希望用户登录后他们可以看到自己的信息,但是当我尝试使用第二个和第三个用户登录时,他们无法登录。

标签: javaphpmysqlandroid-studioandroid-asynctask

解决方案


推荐阅读