在另一个文件中执行后如何使用php变量的值

时间:2018-07-05 11:48:49

标签: php android mysql database-connection

我正在开发一个Android应用程序,在该应用程序上,我将来自用户的应用程序ID和申请人名称作为身份验证的输入值,该值与使用PHP的MYSQL数据库进行匹配,以转到连接成功的下一个屏幕

login.php

<?php

session_start();

require "conn.php";

$user_name = $_POST["user_name"];
$user_id = $_POST["id"];

$mysql_qry = "select * from complaints where Applicant_Name = '".$user_name."' and Complaint_ID like '".$user_id."';";

$result = mysqli_query($conn, $mysql_qry);
if (mysqli_num_rows($result) > 0){

     $_SESSION["username"] = "$user_name";
     $_SESSION["userid"] = "$user_id";

    echo "Login Success";
}
else {
    echo "Login Not Success";
}
?>

现在在下一个屏幕上,我想显示与该特定应用程序ID和申请人名称相关的内容,我要在内容查询的WHERE部分中使用login.php中变量$ user_name和$ user_id的值。 php来获取我需要的特定数据。

现在我正在使用下面的代码,该代码现在可以正常工作,但我想在content.php查询的WHERE部分中使用$ user_name和$ user_id的值

content.php

 <?php

session_start();

require "conn.php";

$username = $_SESSION["username"];
$userid = $_SESSION["userid"];

 //creating a query
 $stmt = $conn->prepare("SELECT Complaint_ID, Applicant_Name, Category, Subject, Description FROM complaints WHERE Complaint_ID = '".$userid."' AND Applicant_Name = '".$username."'");

 //executing the query 
 $stmt->execute();

 //binding results to the query 
 $stmt->bind_result($id, $name, $cat, $sub, $desc);

 $complaint = array(); 

 //traversing through all the result 
 while($stmt->fetch()){
 $temp = array();
 $temp['Complaint_ID'] = $id; 
 $temp['Applicant_Name'] = $name; 
 $temp['Category'] = $cat; 
 $temp['Subject'] = $sub; 
 $temp['Description'] = $desc; 
 array_push($complaint, $temp);
 }

 //displaying the result in json format 
 echo json_encode($complaint);

?>

在android上,没有问题,一切正常,在PHP方面,我需要帮助。

2 个答案:

答案 0 :(得分:0)

我认为首先您需要在login.php中更改选择查询,您应该使用'='而不是

$mysql_qry = "select * from complaints where Applicant_Name like '$user_name' and Complaint_ID like '$user_id';";

$mysql_qry = "select * from complaints where Applicant_Name='".$user_name."' and Complaint_ID='".$user_id."' ";

,需要将$ user_name和$ user_id存储在会话中,并在content.php上使用该会话值,如下所示:

在login.php中设置以下值

 if (mysqli_num_rows($result) > 0){
   $_SESSION['name']=$user_name;
   $_SESSION['id']=$user_id; 
   echo "Login Success";
 }

别忘了在两个文件的顶部开始会话

在content.php文件中,使用以下查询

 $stmt = $conn->prepare("SELECT Complaint_ID, Applicant_Name, Category, Subject, Description FROM complaints WHERE Complaint_ID = '".$_SESSION['id']."' AND Applicant_Name = '".$_SESSION['name']."'");

答案 1 :(得分:0)

您可以使用PHP $ SESSIONS处理此问题。对于您的login.php,请执行以下操作

    <?php
session_start();
require "conn.php";
$user_name = $_POST["user_name"];
$user_id = $_POST["id"];
            //your codes
    if (mysqli_num_rows($result) > 0){
         echo "Login Success";
     //just add this two sessions
         $_SESSION["username"] = "$user_name";
         $_SESSION["userid"] = "$user_id";
      } else {
      echo "Login Not Success";
             }
            ?>

然后在content.php上对会话进行检查(如果成功)?登录成功后,获取存储在$SESSIONS[]中的值。

    <?php
    session_start();
    if (isset($_SESSION['userid'])) {
//if succesfully set, get the values stored sessions.
        $username = $_SESSION['username'];
        $userid = $_SESSION['userid'];
//just echo to check if set output results are correct
    echo "sessions were set successfully username is $username and userid is $userid";
    }else{
    echo "was unable to set sessions";
    }
   require "conn.php"
//creating a query
    $stmt = $conn->prepare("SELECT Complaint_ID, Applicant_Name, Category, Subject, Description FROM complaints WHERE Complaint_ID = '$userid' AND Applicant_Name = '$username'");  
//Rest of your codes
        ?>

有关更多信息,您可以访问https://www.w3schools.com/php/php_sessions.asp。 会话可在所有php页面上使用,因此您可以从任何位置进行选择,并且存储的信息不会保存在用户计算机中。