登录过程不起作用

时间:2017-03-27 13:17:56

标签: php android

我在Android应用程序中制作登录服务,但登录时遇到问题。 在我注册示例数据并尝试登录后,登录按钮会响应消息' BasicNetwork.performRequest:http://ekb2011.cafe24.com/Login.php&#39}的意外响应代码500。

这是我登录的PHP代码。



<?php
	$con = mysqli_connect("localhost","ekb2011","*********","ekb2011");
	
	$userID = $_POST["userID"];
	$userPassword = $_POST["userPassword"];
	
	$statement = mysqli_prepare($con, "SELECT * FROM USER WHERE userID = ? AND userPassword = ?");
	mysqli_stmt_bind_param($statement, "ss", $userID, $userPassword);
	mysqli_stmt_execute($statement);
	
	mysqli_stmt_store_result($statement);
	mysqli_stmt_bind_result(&statement, $userID, $userPassword, $userName);
	
	$response = array();
	$response["success"] = false;
	
	while(mysqli_stmt_fetch($statement)){
		$response["success"] = true;
		$response["userID"] = $userID;
		$response["userPassword"] = $userPassword;
		$response["userName"] = $userName;	
	}
	echo json_encode($response);
?>
&#13;
&#13;
&#13;

以下是我的应用程序中执行的java代码。

LoginActivity.java

public class LoginActivity extends AppCompatActivity {

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

    final EditText idText=(EditText)findViewById(R.id.idText);
    final EditText passwordText=(EditText)findViewById(R.id.passwordText);

    final Button loginButton=(Button)findViewById(R.id.loginButton);
    final TextView registerButton = (TextView)findViewById(R.id.registerButton);
    final CheckBox loginCheckBox = (CheckBox)findViewById(R.id.logincheckBox);



    registerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent registerIntent=new Intent(LoginActivity.this, RegisterActivity.class);
            LoginActivity.this.startActivity(registerIntent);
        }
    });
    loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final String userID=idText.getText().toString();
            final String userPassword=passwordText.getText().toString();

            Response.Listener<String> responseListener=new Response.Listener<String>(){

                @Override
                public void onResponse(String response) {
                    try{
                        JSONObject jsonResponse=new JSONObject(response);
                        boolean success=jsonResponse.getBoolean("success");
                        if(success){
                            String userID=jsonResponse.getString("userID");
                            String userPassword=jsonResponse.getString("userPassword");
                            Intent intent=new Intent(LoginActivity.this, MainActivity.class);
                            intent.putExtra("userID",userID);
                            intent.putExtra("userPassword",userPassword);
                            LoginActivity.this.startActivity(intent);
                        }
                        else{
                            AlertDialog.Builder builder=new AlertDialog.Builder(LoginActivity.this);
                            builder.setMessage("Failed to Login")
                                    .setNegativeButton("Try Again", null)
                                    .create()
                                    .show();
                        }
                    } catch(Exception e){
                        e.printStackTrace();
                    }
                }
            };

            LoginRequest loginRequest=new LoginRequest(userID, userPassword, responseListener);
            RequestQueue queue= Volley.newRequestQueue(LoginActivity.this);
            queue.add(loginRequest);
        }
    });

}
}

LoginRequest.java

public class LoginRequest extends StringRequest {
    final static private String URL="http://ekb2011.cafe24.com/Login.php";
    private Map<String, String> parameters;
    public LoginRequest(String userID, String userPassword, Response.Listener<String> listener){
        super(Method.POST, URL, listener, null);
        parameters=new HashMap<>();
        parameters.put("userID", userID);
        parameters.put("userPassword", userPassword);

    }
    @Override
    public Map<String, String> getParams(){
        return parameters;
    }

}

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

改变这个:

mysqli_stmt_bind_result(&statement, $userID, $userPassword, $userName);

在此:

mysqli_stmt_bind_result($statement, $userID, $userPassword, $userName);