2016-09-20 78 views
1

我在我的Android應用程序中有3個php文件 - 連接數據庫的dbConnect.php,登錄用戶的volleyLogin.php,以及獲取關於登錄用戶的一些信息的UserDetails.php爲什麼包含在我的PHP文件中不包括我的變量?

他們在我的瀏覽器中運行文件時工作完美,但是從我的Android應用程序UserDetails.php運行時無法正常工作。它保持返回'0結果',我被告知變量username是未定義的,即使我使用include語句,它應該將一個PHP文件的內容插入另一個PHP文件。

dbConnect.php看起來是這樣的:

<?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'); 

?> 

volleyLogin.php是這樣的:

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

?> 

而且UserDetails.php看起來是這樣的:

<?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(); 

?> 

問題行是:

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

使用' require'而不是'include'並檢查日誌。 –

回答

1

您的邏輯錯誤:mysqli_*()函數基本上是返回一個對象/結果句柄,或布爾值true(成功)/ false(失敗)。他們總是返回一些東西,因此有:

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

是錯誤的。將始終設置爲$check。您需要顯式地檢查布爾值false,以檢測故障:

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

並注意關你的示例代碼,你定義$username,所以你的查詢正在進行WHERE user.username = '',而且很可能匹配0

+0

我會研究你的答案,但當我說'$ username = $ _POST ['username'];''時,''username'沒有在'volleyLogin.php'中定義。 – CHarris

+0

僅在發佈帖子時... –

相關問題