Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的PHP文件中的include不包含我的变量?_Php_Android_Php Include - Fatal编程技术网

为什么我的PHP文件中的include不包含我的变量?

为什么我的PHP文件中的include不包含我的变量?,php,android,php-include,Php,Android,Php Include,我的Android应用程序中有3个php文件-dbConnect.php,用于连接数据库;volleyLogin.php,用于登录用户;以及UserDetails.php,用于获取有关登录用户的一些信息 当在我的浏览器中运行这些文件时,它们工作得非常好,但当从我的Android应用程序运行时,UserDetails.php不起作用。它不断返回“0结果”,我被告知变量username未定义,即使我使用include语句,该语句应该将一个PHP文件的内容插入另一个PHP文件 我的dbConnect.

我的Android应用程序中有3个php文件-
dbConnect.php
,用于连接数据库;
volleyLogin.php
,用于登录用户;以及
UserDetails.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');

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

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

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

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

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

?>

您的逻辑是错误的:
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

使用
require
而不是
include
并检查日志。我会查看您的答案,但是
$username
volleyLogin.php
中没有定义,当我说
$username=$\u POST['username']