2017-10-26 16 views
-2

私は銀行業務をデザインする学校プロジェクトに取り組んでいます。私は現在、ログインと登録のための基本レイアウトとデータベース接続に取り組んでいます。 ログインと登録機能はうまくいきますが、PHPスクリプトが返す情報を取得しようとするとnullが返されます。PHP SQLクエリがnullを返します

私のメインクラス:

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); 
     } 

    }); 

} 
} 

マイloginRequestクラス:

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; 
} 



} 

そして、私のPHPスクリプト:

<?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); 
?> 
+0

クエリでhttp://php.net/manual/en/function.error-reporting.phpとhttp://php.net/mysqli_errorを使用してください。私はアンドロイド/ javaのものに役立つことはできません –

答えて

0

解決策を見つけた は、ここに私のコードです。私はデータベースのすべての列をfetchステートメントに入れませんでした。

関連する問題