I'm working on an android app, a java app, and i called for a response from a php file uploaded on my host, and my response is ' []', i checked the php code and i dont know what the problem is, i saw some posts it's an encode problem about which i dont know nothing, can you help me please , here's my php code.
<?php
require_once '../includes/DbConnect.php';
$response =array();
if($_POST['username'] && $_POST['password']){
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username=?";
$stmt = mysqli_stmt_init($con);
mysqli_stmt_bind_param($stmt,"s",$username);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if($user = mysqli_fetch_assoc($result))
{
$passwordCheck = password_verify($password,$user['password']);
if($passwordCheck == false){
$response['error'] = true;
$response['message'] = "Invalid username or password";
}
else if($passwordCheck == true) {
$response['error'] = false;
$response['id'] = $user['idUsers'];
$response['email'] = $user['email'];
$response['username'] = $user['username'];
$response['country']= $user['country'];
$response['firstname']= $user['firstname'];
$response['lastname']= $user['lastname'];
$response['points']= $user['points'];
}
}
}
echo json_encode($response);
?>
My recommended adjustments:
<?php
require_once '../includes/DbConnect.php'; // <-- change from procedural to obj-oriented
$response['error'] = true; // default value
if (!isset($_POST['username'], $_POST['password'])) {
$response['message'] = "Invalid username or password";
} elseif (!$con) {
$response['message'] = "Database Connection Error: "; // for private debugging only: . $con->connect_error;
} elseif (!$stmt = $con->prepare("SELECT * FROM users WHERE username = ?")) {
$response['message'] = "Prepare Syntax Error"; // for private debugging only: . $con->error
} elseif (!$stmt->bind_param("s", $_POST['username']) || !$stmt->execute() || !$result = $stmt->get_result()) {
$response['message'] = "Statement Error"; // for private debugging only: . $stmt->error
} elseif (!$user = $result->fetch_assoc() || !password_verify($_POST['password'], $user['password'])) {
$response['message'] = "Invalid username or password";
} else {
$response['error'] = false;
$response['id'] = $user['idUsers'];
$response['email'] = $user['email'];
$response['username'] = $user['username'];
$response['country'] = $user['country'];
$response['firstname'] = $user['firstname'];
$response['lastname'] = $user['lastname'];
$response['points'] = $user['points'];
}
echo json_encode($response);