登录时信息不正确

时间:2018-01-09 10:24:40

标签: java android json

我在android中创建了登录和注册页面。我希望在登录表单中输入正确的数据而不是登录,但是当我使用不正确的用户名和密码时,它仍然登录并显示如下错误: - org.json.JSONException: No value for res_response因为当我注册页面时我的数据通过服务器进行url采用JSON对象的格式。

Registration.java

public class Registration extends Activity {
    EditText username, email, password, mobile;
    String url = "http://codexpertise.com/codexpertise.com/apitest/signup.php";
    Button btnRegister;
    ImageButton btnfb;

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

        username = (EditText) findViewById(R.id.editname);
        email = (EditText) findViewById(R.id.editemail);
        password = (EditText) findViewById(R.id.editpassword);
        mobile = (EditText) findViewById(R.id.editmobile);
        btnRegister = (Button) findViewById(R.id.btnRegister);
        btnfb = (ImageButton) findViewById(R.id.btnfb);


        btnRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String name = username.getText().toString().trim();
                final String emaill = email.getText().toString().trim();
                final String passwordd = password.getText().toString().trim();
                final String mobilee = mobile.getText().toString().trim();
                compare_version();
                Log.e("TAG","Message");
                if (TextUtils.isEmpty(name)) {
                    username.setError("Please enter username");
                    username.requestFocus();
                    return;
                }

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

                if (!android.util.Patterns.EMAIL_ADDRESS.matcher(emaill).matches()) {
                    email.setError("Enter a valid email");
                    email.requestFocus();
                    return;
                }

                if (TextUtils.isEmpty(passwordd)) {
                    password.setError("Enter a password");
                    password.requestFocus();
                    return;
                }
                if (TextUtils.isEmpty(mobilee)) {
                    mobile.setError("Enter a mobile number");
                    mobile.requestFocus();
                    return;
                }


            }
        });

        btnfb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Uri uri = Uri.parse("https://www.facebook.com/"); // missing 'http://' will cause crashed
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
            }
        });


    }

    private void compare_version() {
        JSONObject parameters = new JSONObject();

        try {
            parameters.put("type", "signup");
            parameters.put("username", username.getText().toString());
            parameters.put("email", email.getText().toString());
            parameters.put("mobileno", mobile.getText().toString());
            parameters.put("password", password.getText().toString());

        } catch (JSONException e) {
        }
        JsonObjectRequest req = new JsonObjectRequest(Request.Method.POST, url, parameters,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            JSONObject jsonObject = response;
                            String resp_code = jsonObject.getString("resp_code");
                            String resp_msg = jsonObject.getString("res_response");
                            System.out.println("response version =====" + response);

                            resp_code = "200";
                            if (resp_code.compareTo("200") == 0) {
                                System.out.println("response msg==" + resp_msg);
                                Toast.makeText(Registration.this, "response msg==" + resp_msg, Toast.LENGTH_SHORT).show();


                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.e("Error: ", error.getMessage());

            }
        });
        MyApplication.getInstance().addToRequestQueue(req);
    }

}

Mainactivity.java(登录)

public class MainActivity extends Activity {
    public static HashMap<Sound, MediaPlayer> SOUND_MAP=
            new HashMap<Sound, MediaPlayer>();
    public static int userScore= 0, computerScore=0,
            buddyBoxId = 1, computerBoxId = 1;
    public static Context CTX;
    Button play;
    String url = "http://codexpertise.com/codexpertise.com/apitest/login.php";
    ProgressDialog progressDialog;
    TextView register_caption;
    AdView adView = null;
    private AdView mAdView;
    EditText username, passwordd;
    Button btnSignIn, btnRegister;
    ImageView fb;
    int i=0;
    private AdRequest adRequest;
    InterstitialAd mInterstitialAd;

    static MediaPlayer media;
    static Handler mediaHandler;
    public static int stat=0, totTurn = 0, maxEnd = 100;
    public static SharedPreferences configs;
    public static SharedPreferences.Editor configuration;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        username = (EditText) findViewById(R.id.email);
        passwordd = (EditText)findViewById(R.id.password);
        btnSignIn = (Button) findViewById(R.id.play);
        register_caption = (TextView) findViewById(R.id.register_caption);
        fb = (ImageButton) findViewById(R.id.btnfb);
        progressDialog = new ProgressDialog(this);
        progressDialog.setCancelable(false);



        btnSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String name = username.getText().toString().trim();
                final String pass = passwordd.getText().toString().trim();
                compare_version();
                Log.e("TAG","Message");
                if (TextUtils.isEmpty(name)) {
                    username.setError("Please enter username");
                    username.requestFocus();
                    return;
                }

                if (TextUtils.isEmpty(pass)) {
                    passwordd.setError("Please enter your Password");
                    passwordd.requestFocus();
                    return;
                }
                else {
                    Intent i = new Intent(MainActivity.this,Userlist.class);
                    startActivity(i);
                }

            }
        });

        register_caption.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent in = new Intent(MainActivity.this,Registration.class);
                startActivity(in);


            }
        });

        CTX = getApplicationContext();
        configs = CTX. getSharedPreferences("snake_n_ladder", 0);
        configuration = configs.edit();
        loadConfig();
        loadMedia();
    }

    private void compare_version() {
        JSONObject parameters = new JSONObject();

        try {
            parameters.put("type", "userlogin");
            parameters.put("username", username.getText().toString());
            parameters.put("password", passwordd.getText().toString());


        } catch (JSONException e) {
        }
        JsonObjectRequest req = new JsonObjectRequest(Request.Method.POST, url, parameters,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            JSONObject jsonObject = response;
                            String resp_code = jsonObject.getString("resp_code");
                            String resp_msg = jsonObject.getString("res_response");

                            System.out.println("response version =====" +response);

                            resp_code = "200";
                            if (resp_code.compareTo("200") == 0) {
                                System.out.println("response msg=="+resp_msg);
                                Toast.makeText(MainActivity.this, "response msg=="+resp_msg, Toast.LENGTH_SHORT).show();

                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.e("Error: ", error.getMessage());

            }
        });
        MyApplication.getInstance().addToRequestQueue(req);
    }

3 个答案:

答案 0 :(得分:1)

改变这个:

if (resp_code.compareTo("200") == 0) {
     System.out.println("response msg==" + resp_msg);
     Toast.makeText(Registration.this, "response msg==" + resp_msg, Toast.LENGTH_SHORT).show();
}

要:

if (resp_code.equals("200")) {
     System.out.println("response msg==" + resp_msg);
     Toast.makeText(Registration.this, "response msg==" + resp_msg, Toast.LENGTH_SHORT).show();
} else {
     Toast.makeText(Registration.this,"Donot Match",Toast.LENGTH_SHORT).show();
}

答案 1 :(得分:0)

在else条件下调用compare_version()方法

答案 2 :(得分:0)

首先,您必须了解登录成功响应和登录失败(错误的用户名密码组合)响应之间的差异。

您正在从JSON响应中读取“res_response”值,尽管它不在您的登录失败响应中。

此外,您通过硬编码resp_code =“200”;

在代码中犯了一个错误