Ich habe eine Datenbank mit 000webhost erstellt und meine PHP-Dateien auf den Server hochgeladen. Mit Android Studio versuche ich eine Benutzerregisterseite zu erstellen. Ich klicke, um zur Registrierungsseite zu gehen, gebe alle Informationen ein, drücke den Absenden-Knopf und es bringt mich zurück zur Anmeldeseite, wie es sollte, aber die Information wurde nicht an meine Datenbank gesendet. Ich erhalte keine Fehlermeldung, daher weiß ich nicht, wo ich anfangen soll. Hier ist ein Blick auf den Code meiner Java-Klassen und die PHP-Datei sowie ein Snippet der Manifest-Datei.Wie bekomme ich Daten in eine Datenbank mit PHP und Android Studio (Server 00webhost)?
Das Register Anfrage Java-Klasse
package amp.riot;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
public class RegisterRequest extends StringRequest {
private static final String REGISTER_REQUEST_URL ="https://upbeat.000webhostapp.com/register.php";
private Map<String, String> params;
public RegisterRequest(String name, String username, int age, 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);
params.put("age", age + "");
}
public Map<String, String> getParams(){
return params;
}
}
Die Registerseite Java-Klasse
public class Register extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
final EditText etAge= (EditText) findViewById(R.id.etAge);
final EditText etName= (EditText) findViewById(R.id.etName);
final EditText etUsername= (EditText) findViewById(R.id.etUsername);
final EditText etPassword= (EditText) findViewById(R.id.etPassword);
final Button bRegister= (Button) findViewById(R.id.bRegister);
bRegister.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();
final int age= Integer.parseInt(etAge.getText().toString());
final 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(Register.this, Login.class);
Register.this.startActivity(intent);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(Register.this);
builder.setMessage("Register Failed")
.setNegativeButton("Retry", null)
.create()
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
RegisterRequest registerRequest = new RegisterRequest(name, username, age, password, responseListener);
RequestQueue queue = Volley.newRequestQueue(Register.this);
queue.add(registerRequest);
}
});
}
}
Die Manifestdatei
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="amp.riot">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Register PHP Datei
<?php
$con = mysqli_connect("localhost", "id202020_sierra", "05alop59", "id202020_plank");
$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "INSERT INTO user(name, username, age, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "siss", $name, $username, $age, $password);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
?>
Sie sagten, Sie erhalten eine Fehlermeldung, wir brauchen sie. – zack6849
Entschuldigung, ich wollte sagen, dass es keine Fehlermeldung gab, weshalb ich nicht weiß, was ich tun soll. – Bry