Sto lavorando su un'app in Android Studio. Attualmente ha un sistema di login e registrazione collegati a un database ed entrambi funzionano perfettamente.
Ora sto provando a riportare il valore dell'ID utente usando SESSION in php in modo che l'attività oltre l'accesso abbia tutte le informazioni necessarie per personalizzare l'app. Per fare ciò ho creato una classe chiamata Profile che, una volta istanziata, recupera e memorizza tutte le informazioni dell'utente in base all'ID memorizzato come variabile di sessione.
La classe profilo è accompagnata dal proprio file php, buildprofile.php. Qualsiasi classe può creare un'istanza di Profilo e utilizzarla per ottenere informazioni (si spera).
Attualmente quando tento di creare un'istanza di Profilo, l'app si arresta in modo anomalo. Ci sono probabilmente 50 cose diverse che causano questo e ho cambiato le cose più e più volte senza alcun risultato. Ho avviato una sessione nell'attività di login e memorizzato una variabile di sessione 'id' al login con successo.
Il costruttore Profile (basato sul metodo in una classe JSONParser):
try {
JSONObject jobj = jsonParser.getJSONFromUrl(PROFILE_URL);
username = jobj.getString("username");
} catch (JSONException e) {
e.printStackTrace();
}
buildprofile.php:
<?php
session_start();
require("config.inc.php");
if (isset($_SESSION['id'])){
$query = "SELECT id,email,username,bio FROM users WHERE id = :id";
$query_params = array(':id' => $_SESSION['id']);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error1. Please Try Again!";
die(json_encode($response));
}
}
$row = $stmt->fetch();
json_encode($row);
?>