我正在尝试使用用户名,电子邮件和密码来制作简单的注册表格。我被这个凌空和PHP困住了。我已经检查了我的代码,但仍然出现错误。我尝试了不同的解决方案。连接成功,但未成功插入数据。当我单击注册按钮时,它显示register2错误!我试图将ip_address_here更改为localhost。
谢谢你!
public class MainActivity extends AppCompatActivity {
EditText etName,etPassword,etEmail;
Button btnRegister;
TextView tvLogin;
private static String URL_REGIST = "http://ip_address_here/register.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etName=findViewById(R.id.etName);
etPassword=findViewById(R.id.etPassword);
etEmail=findViewById(R.id.etEmail);
btnRegister= findViewById(R.id.btnRegister);
tvLogin=findViewById(R.id.tvLogin);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Register();
}
});
}
private void Register() {
final String name = this.etName.getText().toString();
final String email = this.etEmail.getText().toString();
final String password = this.etPassword.getText().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_REGIST,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
JSONObject jsonobject=new JSONObject(response);
String success=jsonobject.getString("success");
if(success.equals("1")){
Toast.makeText(MainActivity.this, "Register Successfully!", Toast.LENGTH_SHORT).show();
}
}catch (JSONException e){
e.printStackTrace();
Toast.makeText(MainActivity.this, "Register Error!" + e.toString(), Toast.LENGTH_SHORT).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "Register Error2!", Toast.LENGTH_SHORT).show();
}
})
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<>();
params.put("name",name);
params.put("email",email);
params.put("password",password);
return params;
}
};
RequestQueue requestQueue= Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
}
Register.php
<?php
if ($_SERVER["REQUEST_METHOD"] =="POST"){
$dbhost="localhost";
$dbuser="root";
$dbpass="";
$dbName="register";
$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbName);
$name = $_POST["name"];
$email = $_POST["email"];
$password = $_POST["password"];
$password = password_hash($password, PASSWORD_DEFAULT);
$sql = "INSERT INTO register_table(name, email, password) values ('$name', '$email', '$password');";
if ( mysqli_query($conn, $sql) ) {
$result["success"] = "1";
$result["message"] = "success";
echo json_encode($result);
mysqli_close($conn);
} else {
$result["success"] = "0";
$result["message"] = "error";
echo json_encode($result);
mysqli_close($conn);
}
}
首先,您可以提出问题的错误提示如果您在模拟器上运行,则两个为http://10.0.2.2而且您可以禁用php代码中的错误,以便正确设置json格式希望这会有所帮助