Ich arbeite ein Schulprojekt, wo ich eine Banking-App entwerfe. Ich arbeite gerade an dem grundlegenden Layout und der Datenbankverbindung für Anmeldung und Registrierung. So funktioniert meine Anmeldung und Registrierung funktionieren gut, aber wenn ich versuchte, die Informationen, die meine PHP-Skripts zurückgibt, ich gebe nur null zurück. Hier ist mein Code:PHP SQL-Abfrage gibt null
Meine Hauptklasse:
enter code here
package com.example.quinten.netpay;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Vars
final Button btnLogin = (Button) findViewById(R.id.btnLogin);
final Button btnReg = (Button) findViewById(R.id.btnRegister);
final ProgressBar prgLogin = (ProgressBar) findViewById(R.id.prbLogin);
final EditText txtGebruiksnaam = (EditText)findViewById(R.id.txtNaam);
final EditText txtWachtwoord = (EditText)findViewById(R.id.txtWachtwoord);
//ProgressSpiner onzichtbaar maken
prgLogin.setVisibility(View.INVISIBLE);
//Button listeners
//Login
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Nakijken of alle velden zijn ingevuld
if(txtGebruiksnaam.getText().toString().equals("") || txtWachtwoord.getText().toString().equals("")) {
Toast.makeText(getApplicationContext(), "Vul alle velden in!", Toast.LENGTH_LONG).show();
}else{
//ProgressSpiner zichtbaar maken
prgLogin.setVisibility(View.VISIBLE);
//Vars
final String strGebruikersnaam = txtGebruiksnaam.getText().toString();
final String strWachtwoord = txtWachtwoord.getText().toString();
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonReponse = new JSONObject(response);
boolean success = jsonReponse.getBoolean("success");
if (success) {
//Terugekregen gebruikersinfo ophalen
String strGebruikersnaamResp = jsonReponse.getString("Gebruikersnaam");
String strVoornaamResp = jsonReponse.getString("Voornaam");
String strAchternaamResp = jsonReponse.getString("Achternaam");
String strSaldoResp = jsonReponse.getString("Saldo");
//Menu openen en gebruikersinformatie doorgeven
Intent intent = new Intent(getApplicationContext(), Menu.class);
intent.putExtra("gebruikersnaam", strGebruikersnaamResp);
intent.putExtra("voornaam", strVoornaamResp);
intent.putExtra("achternaam", strAchternaamResp);
intent.putExtra("saldo", strSaldoResp);
startActivity(intent);
//ProgressSpiner onzichtbaar maken
prgLogin.setVisibility(View.INVISIBLE);
} else {
Toast.makeText(getApplicationContext(), "Gebruikersnaam of wachtwoord niet correct!", Toast.LENGTH_LONG).show();
//ProgressSpiner onzichtbaar maken
prgLogin.setVisibility(View.INVISIBLE);
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "ERROR!" + " " + e.getMessage().toString(), Toast.LENGTH_LONG).show();
//ProgressSpiner onzichtbaar maken
prgLogin.setVisibility(View.INVISIBLE);
}
}
};
LoginRequest loginRequest = new LoginRequest(strGebruikersnaam, strWachtwoord, responseListener);
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
queue.add(loginRequest);
}
}
});
//Registeren
btnReg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), Registreren.class);
startActivity(intent);
}
});
}
}
Meine loginRequest Klasse:
package com.example.quinten.netpay;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
public class LoginRequest extends StringRequest {
private static final String LOGIN_REQUEST_URL = "http://37.34.58.100/~dragv/login.php";
private Map<String, String> params;
public LoginRequest(String gebruikersnaam, String wachtwoord, Response.Listener<String> listener) {
super(Method.POST, LOGIN_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("gebruikersnaam", gebruikersnaam);
params.put("wachtwoord", wachtwoord);
}
@Override
public Map<String, String> getParams() { return params;
}
}
Und mein PHP-Skript:
<?php
$con = mysqli_connect("Private");
$gebruikersnaam = $_POST["gebruikersnaam"];
$wachtwoord = $_POST["wachtwoord"];
$statement = mysqli_prepare($con, "SELECT * FROM Gebruikers WHERE Gebruikersnaam = ? AND Wachtwoord = ?");
mysqli_stmt_bind_param($statement, "ss", $gebruikersnaam, $wachtwoord);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $Gebruikersnaam, $Voornaam, $Achternaam, $Wachtwoord, $Saldo);
$response = array();
$response["success"] = false;
while(mysqli_stmt_fetch($statement)){
$response["success"] = true;
$response["Gebruikersnaam"] = $Gebruikersnaam;
$response["Voornaam"] = $Voornaam;
$response["Achternaam"] = $Achternaam;
$response["Wachtwoord"] = $Wachtwoord;
$response["Saldo"] = $Saldo;
}
echo json_encode($response);
?>
Verwenden Sie http://php.net/manual/en/function.error-reporting.php und http://php.net/mysqli_error auf die Abfrage - alles davon? Ich kann jedoch nicht mit Android/Java-Sachen helfen –