Session et objet

Rechercher

Session et objet

Par Mimosa  -  8 reponses  -  Le 01/04/2009 17:41  -  Editer  - 

Bonjour,

Je viens (encore) vous exposer un de mes nombreuses problèmes que je rencontre actuellement.

Alors voila, lorsqu'un utilisateur s'identifie sur mon site, je crée une session. A partir de son pseudo, je récupére les informations de l'utilisateur et hydrate un objet User. J'ai alors essayé de mettre cette objet User dans une session, mais il m'ait alors impossible de l'utiliser.

<?php
// lors de l'identification
$user = new UserTable()::findByLogin($_POST['login']);
session_regenerate_id();
$_SESSION['user'] = $user;
?>
<?php
// sur une page quelconque
$_SESSION['user']->getLogin(); // Cette partie qui pose problème
?>

 

Y-a-t-il une solution pour passer un objet dans une session, ou doit-on créer une valeur pour chaque attribue de l'objet ?

Merci d'avance Mimos@

 

 

 

Réponses apportées à cette discussion

Par Emacs  -  Le 02/04/2009 01:45  -  Haut de page  - 

Salut,

Je te recommande déjà de revoir les tutoriels de POO et des sessions de ce site car le peu de code que tu nous présentes est déjà syntaxiquement archi chaud. Essaies déjà de comprendre où se situent tes erreurs, corrige-les et puis ensuite on pourra voir pour t'expliquer la suite ;)

 
Par saturn1  -  Le 02/04/2009 10:10  -  Haut de page  - 

Emacs si tu expliquais pourqu'oi sa ne va pas sa serait cool ^^ on pourrait tous progresser :p ;)

 
Par Mimosa  -  Le 04/04/2009 02:44  -  Haut de page  - 
Emacs si tu expliquais pourqu'oi sa ne va pas sa serait cool ^^ on  pourrait tous progresser :p ;)

Si sa se voit très bien :

  • Je pense qu'il voulait parler de la méthode appelé statiquement alors qu'il y a un new.
$user = new UserTable()::findByLogin($_POST['login']);
 
Par saturn1  -  Le 04/04/2009 10:53  -  Haut de page  - 

ah ui j'avais pas fait gaf !!

 

 
Par Emacs  -  Le 05/04/2009 10:40  -  Haut de page  - 

Et il reste encore une erreur avec le tableau de session...

 
Par Mimosa  -  Le 05/04/2009 17:28  -  Haut de page  - 

Pour les sessions, j'ai essayé en utilisant serialize et unserialize. Cette technique marche mais je sais pas si c'était bien sa l'erreur.

 
Par Emacs  -  Le 06/04/2009 12:42  -  Haut de page  - 

Tu es obligé de sérialiser ton objet si tu veux le passer en session mais ce n'est pas très recommandé. L'idéal c'est juste de passer en session l'ID du user qui est en base, puis de le récupérer sur chaque page et d'interroger la BDD pour aller chercher ses infos et recréer l'objet User.

 
Par saturn1  -  Le 06/04/2009 16:22  -  Haut de page  - 

allez je te fais un dessin ^^

<?php
//...tu récupères le membre
$SESSION['idMembre'] = $membre->getId();
//...il se balade sur tes pages
$membre = MembreTable::getMemberById($_SESSION['idMembre']);
?>

 

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |