2016-09-09 4 views
0

Meine PHP-Datei, login.php, sieht wie folgt aus:Android Volley. Warum wird meine Antwort immer als falsch zurückgegeben?

<?php 

//if($_SERVER['REQUEST_METHOD']=='POST'){ 
//$username = $_POST['username']; 
$username = "Dave"; 
require_once('dbConnect.php'); 
$sql = "SELECT * FROM user WHERE username = '$username'"; 
$result = mysqli_query($con,$sql); 
$check = mysqli_fetch_array($result); 
if(isset($check)){ 
     echo 'Logged in'; 
} else { 
     echo 'Could not log in'; 
} 
//} 

?> 

Als ich nach myserver.com/login.php gehen, ich Logged in sehen, weil Dave in meiner Datenbank.

In meinem Android-App, mein Volley Einloggen Schaltfläche sieht wie folgt aus:

private void userLogin() { 
     username = editTextUsername.getText().toString().trim(); 
//  password = editTextPassword.getText().toString().trim(); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         if(response.trim().equals("Logged in")){ 
          Toast.makeText(LoginActivity.this,"yahoo, you're in",Toast.LENGTH_LONG).show(); 
          openProfile(); 
         }else{ 
           Toast.makeText(LoginActivity.this,"sorry, you're out",Toast.LENGTH_LONG).show(); 
//       Toast.makeText(LoginActivity.this,response,Toast.LENGTH_LONG).show(); 
         } 
        } 
       }, etc... etc... 

Aber wenn ich mein Login Button klicken, mein Toast ist immer, sorry, you're out. Weißt du, warum ?

+0

An der Spitze Ihrer PHP-Datei fügen Sie 'error_reporting (E_ALL);' hinzu und anstelle der benutzerdefinierten Nachricht zum Toasten sollten Sie einfach den Wert von 'response.trim()' toasten. – MonkeyZeus

Antwort

0

Da dies:

$check = mysqli_fetch_array($result); 

Die Funktion ein Array zurückgibt (Erfolg) oder boolean false (Fehler). So oder so, $check ist IMMER wird gesetzt, so isset($check) wird immer wahr zurückgeben.

Ihre Logik sollte

if ($check === false) { 

sein, das heißt, es gibt keine Zeilen (oder die Abfrage nicht).

+0

Vielen Dank für Ihre Hilfe, aber ändern, wenn (isset ($ check)) {zu wenn ($ check === false) {hat nicht funktioniert. – CHarris

Verwandte Themen