2016-09-20 3 views
1

Ich habe 3 php-Dateien in meiner Android-App - dbConnect.php, die mit der Datenbank verbindet, volleyLogin.php, die den Benutzer anmeldet, und UserDetails.php, die einige Informationen über den angemeldeten Benutzer erhält.Warum enthält meine PHP-Datei keine Variablen?

Sie funktionieren perfekt beim Ausführen der Dateien in meinem Browser, aber wenn von meiner Android App UserDetails.php ausgeführt wird nicht funktioniert. Es gibt immer '0 Ergebnisse' zurück und mir wurde gesagt, dass die Variable username undefiniert ist, obwohl ich die include-Anweisung verwende, die den Inhalt einer PHP-Datei in eine andere PHP-Datei einfügen soll.

Mein dbConnect.php sieht wie folgt aus:

<?php 

define ('HOST', 'localhost'); 
define ('USER', 'root'); 
define ('PASS', 'password'); 
define ('DB', 'dbname'); 

$con = mysqli_connect("localhost", "root", "password", "dbname") or die('Unable to Connect'); 

?> 

Mein volleyLogin.php ist wie folgt:

<?php 

if($_SERVER['REQUEST_METHOD']=='POST'){ 
$username = $_POST['username']; 

include('dbConnect.php'); 
$sql = "SELECT * FROM user WHERE username = '$username'"; 
$result = mysqli_query($con,$sql); 
$check = mysqli_fetch_array($result); 
if(isset($check)){ 

     echo 'success'; 
} else { 
     echo 'Could not log in'; 
} 
} 

?> 

Und UserDetails.php sieht wie folgt aus:

<?php 
include('dbConnect.php'); 
include('volleyLogin.php'); 

$resultSet = $con->query("SELECT category.cat_name FROM category INNER JOIN user ON category.user_id = 
user.user_id WHERE user.username = '$username' ") 

or die($con->error); 

if ($resultSet->num_rows > 0) { 

     while($rows = $resultSet->fetch_assoc()) { 

$catname = $rows['cat_name']; 

     echo "<p> Name: $catname </p>"; 
}} 
     else { 
    echo "0 results"; 
} 
//echo "userdetails.php works"; 

$con->close(); 

?> 

Das Problem Linie ist:

$resultSet = $con->query("SELECT category.cat_name FROM category INNER JOIN user ON category.user_id = 
user.user_id WHERE user.username = '$username' ") 
+0

mit den richtigen ' require' statt 'include' und überprüfe das Logbuch. –

Antwort

1

Ihre Logik ist falsch: mysqli_*() Funktionen im Grunde entweder ein Objekt/Ergebnis behandeln, oder eine boolesche wahr (Erfolg)/false (Fehler). Sie geben IMMER etwas zurück, also mit:

$check = mysqli_fetch_array($result); 
if(isset($check)){ 

ist falsch. $check wird IMMER eingestellt. Sie müssen explizit für boolean false zu erkennen Scheitern überprüfen:

if ($check === false) { 
    die(mysqli_error($con)); 
} 

Und das beachten Sie in keiner Ihrer Beispielcode definieren Sie $username, so dass Ihre Abfrage WHERE user.username = '' tut, und wahrscheinlich 0 Reihen

+0

Ich schaue mir Ihre Antwort an, aber '' username' ist nicht in 'volleyLogin.php' definiert, wenn ich' $ username = $ _POST ['username']; '? – CHarris

+0

nur wenn ein Beitrag ausgeführt wird ... –

Verwandte Themen