Bonjour, quel procédé équivalent aux sessions php existe sous Android?
Merci d'avance
Version imprimable
Bonjour, quel procédé équivalent aux sessions php existe sous Android?
Merci d'avance
Pourquoi tu as besoin de retrouver ça sur Android ?
Peux -tu nous expliquez dans quel cadre tu aurais besoin de ça ?
Dans l'application que j'ai en tête, l'utilisateur devra se connecter avec son identifiant et mot de passe auprès de ma base de données en ligne (technologie Client-serveur si je ne m'abuse)
Du coup je sais qu'en PHP derrière le bouton de connexion j'aurais :
- fais les vérif nécessaires par rapport au pseudo/mdp
- Si vérif OK, je crée une variable $_SESSION contenant par exemple l'identifiant de l'utilisateur et par le biais de celle ci je lui donne accès à ses données jusqu'au moment de la déconnexion.
Voilà je sais pas si c'est très clair, je cherche quelque chose semblable à $_SESSION afin que dans toutes les activity de mon appli je puisse faire faire des requêtes sur cet identifiant
Ex de requête : "select * from utilisateur where id=" + $_SESSION['id']
Sous Android tu peux utiliser les fichiers de préférences.
Lorsque tu connaite pour la première fois tu crée deux variable(login , pw) et tu insère tes valeurs récupérés depuis ton application.
Lors d'une deuxieme connexion de l'application tu peux lire le contenu directement depuis ton fichier de préférences.
Je ne vois toujours pas le rapport....
Il y a un client (HttpClient), et un serveur (PHP).. Que le serveur maintienne une session ou non, ça ne regarde que le serveur... HttpClient est, si je ne m'abuse, suffisamment évolué pour utiliser les cookies nécessaires. Par contre il est possible que dans l'application android, il faille conserver le même HttpClient tout du long ? Aucune idée.
L'autre solution, comme évoquée ci-dessus, est l'utilisation d'une clé d' "authentication" passée par le client à chaque requete (cookie, header, parametre,...) et obtenue grace à un "login"... La clé peut coder l'ensemble des informations nécessaires (l'ID de l'utilisateur), une date limite de validité, et, pour plus de sécurité, l'addresse IP à laquelle elle correspond.
Ce système est plus interessant pour plusieurs raison: Redémarrer le serveur ne déconnectera pas les utilisateurs connectés (mises à jour), il est possible d'avoir plusieurs serveurs en parallèle (et même répartis dans le monde), etc...
Oui, HttpClient gère les cookies, mais il ne peut pas gérer les variables de sessions car elles sont uniquement sur le serveur, pas sur le navigateur.
Non, sur le serveur seulement.
Non. Ni sur HttpClient ni nulle part. Mais si tu veux faire comme avec les cookie, eh bien, utilise des cookies au lieu de variables de session.
Oui ça s'appelle un cookie...
Variable Applicative:
* Stockage: Client
* Gestion: Client
* Lifetime: Application ou + (si stockage local).
* Passage au Serveur par paramètre/header.
Cookie:
* Stockage: Client
* Gestion: Serveur
* Lifetime: Session ou + (dépend du choix du Serveur)
* Passage au Serveur automatique (basé sur l'URL).
* Passage au Client par déclaration dans la réponse.
Variable Session:
* Stockage: Serveur
* Gestion: Serveur
* Lifetime: Session uniquement
Mais n'est ce pas inapproprié d'utiliser des variables de sessions sur les applications android ? Je m'explique : l'utilisateur se logg à partir de son android sur le serveur PHP qui vérifie dans la BD, une fois authentifié le serveur créé des variables de sessions pour le client en question, maintenant si la session se termine lorsque l'utilisateur utilise son application (il l'utilise mais ne fait plus de requetes vers le serveur PHP donc après un moment la session se termine no ?). Dans se cas là, l'application qui se crois permise de faire des requetes sur le serveur ne pourra plus car ses variables de sessions auront expirés ... Je me trompe ?
Ou alors peut être que temps que la variable "HttpClient httpclient" est là (détruise lorsque l'on quitte l'app j'imagine) la session est maintenue ouverte ?