[英]Session in php for android mobile application
我想顯示客戶在自己的帳戶中選擇的項目的選擇。 我使用session_start從登錄頁面到顯示頁面。 但是在顯示頁面中,我使用會話后不顯示任何內容。 在我尚未開始使用會話之前,所有客戶選擇的所有項目將一起顯示,我聽說會話可以用來顯示特定客戶在其帳戶中選擇的項目,但是在使用會話之后,它什么也沒有顯示。 這是移動Android應用程序。 它是由android studio開發的,但數據庫使用的是localhost和php。 我將在此處發布我的登錄信息,選擇並顯示頁面以及顯示頁面的輸出。 如果有人知道答案,請幫助我修改我的代碼,謝謝。
登錄php:
<?php
session_start();
?>
<?php
require_once '../includes/DbOperations.php';
$response = array();
if($_SERVER['REQUEST_METHOD']=='POST'){
if(isset($_POST['user_login']) and isset($_POST['user_pass'])){
$db = new DbOperations();
if($db->userLogin($_POST['user_login'], $_POST['user_pass'])){
$user = $db->getUserByUsername($_POST['user_login']);
$response['error'] = false;
$response['ID'] = $user['ID'];
$response['user_email'] = $user['user_email'];
$response['user_login'] = $user['user_login'];
$_SESSION['loggedIn'] = true;
$_SESSION['username'] = $user['user_login'];
}else{
$response['error'] = true;
$response['message'] = "Invalid username or password";
}
}else{
$response['error'] = true;
$response['message'] = "Required fields are missing";
}
}
echo json_encode($response);
?>
選擇頁面:
<?php
session_start();
?>
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
//Getting values
$username = $_POST['username'];
$_SESSION['username'] = $_POST['username'];
$name = $_POST['name'];
$date = $_POST['date'];
//Creating an sql query
$sql = "INSERT INTO table1 (username, name, date) VALUES ('$username','$name', '$date')";
//Importing our db connection script
require_once('dbConnect.php');
//Executing query to database
if(mysqli_query($con,$sql)){
echo 'Select Successfully';
}else{
echo 'Sorry, You Are Select This Item Before';
}
//Closing the database
mysqli_close($con);
}
?>
顯示頁面:
<?php
session_start();
?>
<?php
//Importing Database Script
require_once('dbConnect.php');
//Creating sql query
$sql = "SELECT * FROM table1 WHERE username = '".$_SESSION['username']."'";
//getting result
$r = mysqli_query($con,$sql);
//creating a blank array
$result = array();
//looping through all the records fetched
while($row = mysqli_fetch_array($r)){
//Pushing name and id in the blank array created
array_push($result,array(
"id"=>$row['id'],
"username"=>$row['username'],
"name"=>$row['name'],
"date"=>$row['date']
));
}
//Displaying the array in json format
echo json_encode(array('result'=>$result));
mysqli_close($con);
?>
顯示頁面輸出:
{"result":[]}
將Android App連接到API服務器時。 它啟動無狀態連接 。 會話在這里不起作用。 在登錄時,如果憑據有效,則應創建一個身份驗證令牌,並且您的android應用應在每次請求Web服務資源時發送此令牌。 您將需要在HTTP Server上驗證此令牌的真實性。
考慮閱讀以下主題:
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.