Как я могу отобразить баланс пользователя в следующем действии (Android) после входа в систему, используя Volley Library, PHP и MySQL? - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю над приложением, которое позволяет зарегистрированным пользователям войти в систему, чтобы проверить их баланс. Я был в состоянии получить приложение для проверки имени пользователя и пароля из базы данных sql с помощью php успешно. Приложение использует библиотеку залпов для сети. Теперь вот моя проблема, при успешном входе в систему, как я могу заставить мое приложение отображать балансы пользователей из БД в следующем действии. Я знаю, что должен запросить БД и затем encode_json () в сценарии php, но как мне передать имя пользователя и пароль? Я использую FILTER_POST [INPUT_POST, ""], чтобы передать имя пользователя и пароль от логина (андроид) в скрипт php но использование FILTER_POST [], $ _ SESSION в php-скрипте, похоже, влияет на вывод JSON и ничего не отображается. Любая помощь будет принята с благодарностью.

Это метод входа в систему:

public void login(){
    StringRequest request = new StringRequest(Request.Method.POST, "http://192.168.1.139/loginapp/login.php",
            new Response.Listener<String>(){
        @Override
        public void onResponse(String response) {
            if (response.contains("1")){
                startActivity(new Intent(getApplicationContext(),Main2Activity.class));
            }else{
                Toast.makeText(getApplicationContext(),
                        "Wrong username or password", Toast.LENGTH_SHORT).show();
            }

        }
    }, new Response.ErrorListener(){
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }){
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("username",et_username.getText().toString());
            params.put("password",et_password.getText().toString());
            return params;
        }
    };
    Volley.newRequestQueue(this).add(request);
}

Это скрипт login.php

<?php
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASS', 'password');
    define('DB_NAME', 'employee101');

    //connecting to database and getting the connection object
    $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

   //Checking if any error occured while connecting
   if (mysqli_connect_errno()) {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
    die();
   }

   $username = filter_input(INPUT_POST, "username");
   $password = filter_input(INPUT_POST, "password");

   $mysqli = new mysqli("localhost","root","password","employee101");
   $result = mysqli_query($mysqli,"select * from employee_data where 
   username = '".$username."' and password = '".$password."'");
   if ($data = mysqli_fetch_array($result)){
   echo '1';
   }else{
   echo '0';
   }

   ?>

Это php-скрипт для второго действия, который покажет баланс пользователя и кредит

<?php 

 //database constants
 define('DB_HOST', 'localhost');
 define('DB_USER', 'root');
 define('DB_PASS', 'password');
 define('DB_NAME', 'employee101');

 //connecting to database and getting the connection object
 $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

 //Checking if any error occured while connecting
 if (mysqli_connect_errno()) {
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
 die();
 }

 //creating a query
 $stmt = $conn->prepare("SELECT id, name, surname, age, username, password 
 FROM employee_data where username = '".$username."' and password = 
 '".$password."';");

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

 //binding results to the query 
 $stmt->bind_result($id, $name, $surname, $age, $username, $password);

 $products = array(); 

 //traversing through all the result 
 while($stmt->fetch()){
 $temp = array();
 $temp['id'] = $id; 
 $temp['name'] = $name; 
 $temp['surname'] = $surname; 
 $temp['age'] = $age; 
 $temp['username'] = $username; 
 $temp['password'] = $password; 
 array_push($products, $temp);
 }

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

Я пытался использовать $ _SESSION [] для передачи имени пользователя от первого скрипта ко второму, но это не работает.

1 Ответ

0 голосов
/ 04 апреля 2019

в первом скрипте php внесите изменения

 $result = mysqli_query($mysqli,"select * from employee_data where 
   username = '".$username."' and password = '".$password."'");
   if ($data = mysqli_fetch_array($result)){
   echo '1';
   }else{
   echo '0';
   }

вот так

$result = mysqli_query($mysqli,"select * from employee_data where 
       username = '".$username."' and password = '".$password."'");
       if ($data = mysqli_fetch_array($result)){
      //return json array here only.You are already fetching employee records here
       }else{
       echo '0';
       }
...