簡體   English   中英

適用於Android移動應用程序的php中的會話

[英]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上驗證此令牌的真實性。

考慮閱讀以下主題:

RESTful API身份驗證基礎

RESTFul API

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM