我正在开发一个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方面,我需要帮助。
答案 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页面上使用,因此您可以从任何位置进行选择,并且存储的信息不会保存在用户计算机中。