Я работаю над приложением, которое позволяет зарегистрированным пользователям войти в систему, чтобы проверить их баланс.
Я был в состоянии получить приложение для проверки имени пользователя и пароля из базы данных 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 [] для передачи имени пользователя от первого скрипта ко второму, но это не работает.