Register.php没有响应?

我正在尝试在一个应用程序中设置一个简单的注册用户,最终将允许用户搜索本地乐队和他们所演奏的场地。

在输入注册信息的位置,单击“注册”,然后返回登录页面。尝试将应用程序与数据库链接后,单击“注册”按钮不会执行任何操作,除非我注释掉onClick方法的“ Response.Listener responseListener = new Response.Listener()”部分。

所以,似乎我没有收到Register.php的回复。(?)

当我注释掉onClick方法的“ Response.Listener responseListener = new Response.Listener()”部分时,我可以使事情发生。因此,这就是为什么我认为我已将问题范围缩小到该部分代码。

我的Registeractivity类:

public class Registeractivity extends AppCompatactivity {

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

    final EditText etName = findViewById(R.id.text_register_name);
    final EditText etusername = findViewById(R.id.text_register_username);
    final EditText etPassword = findViewById(R.id.text_register_password);
    final Button btnRegister = findViewById(R.id.btn_register);

    btnRegister.setOnClicklistener(new View.OnClicklistener() {
        @Override
        public void onClick(View v) {
            final String name = etName.getText().toString();
            final String username = etusername.getText().toString();
            final String password = etPassword.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) {
                            Intent intent = new Intent(Registeractivity.this,Mainactivity.class);
                            Registeractivity.this.startactivity(intent);
                        }
                        else {
                            AlertDialog.Builder builder = new AlertDialog.Builder(Registeractivity.this);
                            builder.setMessage("Register Failed").setNegativeButton("Retry",null).create().show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            };

            RegisterRequest registerRequest = new RegisterRequest(name,username,password,responseListener);
            RequestQueue queue = Volley.newRequestQueue(Registeractivity.this);
            queue.add(registerRequest);
        }
    });
}

我的RegisterRequest类:

public class RegisterRequest extends StringRequest {
private static final String REGISTER_REQUEST_URL = "http://bandsearch.000webhostapp.com/public_html/Band/Register.php";
private Map<String,String> params;

public RegisterRequest (String name,String username,String password,Response.Listener<String> listener) {
    super(Method.POST,REGISTER_REQUEST_URL,listener,null);
    params = new HashMap<>();
    params.put("name",name);
    params.put("username",username);
    params.put("password",password);
}

@Override
protected Map<String,String> getParams() throws AuthFailureError {
    return params;
}

我的Register.php:

<?php
ini_set('error_reporting',E_ALL);
ini_set('display_errors',true);

$connect = mysqli_connect('localhost','id11439356_btpeters','demopass','id11439356_localmusic');

// $name = "Brent"; //$_POST['name']; 
// $username = "Vegasbrent"; //$_POST['username']; 
// $password = "pass"; //$_POST['password']; 

$name = $_POST['name'];
$username = $_POST['username'];
$password = $_POST['password'];

$statement = mysqli_prepare($connect,"INSERT INTO user (name,password) VALUES (?,?,?)");
mysqli_stmt_bind_param($statement,"sss",$name,$username,$password);
mysqli_stmt_execute($statement);

$response = array();
$response["success"] = false;

if (mysqli_query($connect,$statement)) {
    $response["success"] = true;   
}

echo json_encode($response);
?>

我希望单击“注册”按钮时应用程序将返回到登录页面,但是单击“注册”按钮不会执行任何操作。

编辑:我相信我已经将问题进一步缩小到$ _POST部分:

$name = $_POST['name'];
$username = $_POST['username'];
$password = $_POST['password'];

如果将变量设置为字符串而不是$ _POST [...],则可以添加到数据库的用户表中。它可能与getParams方法有关,因为我从不调用它。我以为它在某个地方被自动调用了。我会检查一下,看看是否可以解决!尽管如此,我们将提供任何帮助!

编辑:Volley自动调用getParams方法。现在尝试弄清楚如何检查Volley是否调用了getParams方法!

rlh834844153 回答:Register.php没有响应?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3164615.html

大家都在问