[PHP] Varaibles de sessions et classes

Varaibles de sessions et classes [PHP] - PHP - Programmation

Marsh Posté le 26-03-2009 à 16:28:54    

Bonjour,
 
J'explique mon problème :  
Dans une méthode que j'appelle quand un user se logue, j'instancie un objet que je range dans une variable de session par la suite, comme ceci :
$user = new User($id, $name, $email, $password, $level, $lang);
$_SESSION['user'] = $user;
 
Ensuite, dans une autre page, je récupère mon objet dans une variable :  
$user = $_SESSION['user'];
 
Et lorsque je fais :
echo $user->id;
J'obtiens le message suivant :
Notice: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "User" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition
 
Je ne comprends pas pourquoi ca ne marche pas...
Quelqu'un a une idée?
 
Merci

Reply

Marsh Posté le 26-03-2009 à 16:28:54   

Reply

Marsh Posté le 26-03-2009 à 16:43:13    

Essaye éventuellement avec (code pas vérifié) :

Code :
  1. $_SESSION['user'] = serialize($user);

et

Code :
  1. $user = unserialize($_SESSION['user']);


Message édité par kao98 le 26-03-2009 à 16:44:40

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 26-03-2009 à 16:58:43    

Ca marche, merci beaucoup !
 
Tu pourrais me dire ce que font ces fonctions stp?

Reply

Marsh Posté le 26-03-2009 à 17:02:18    

Si j'ai mis les balises code=php, c'est parce qu'elles mettent des liens direct vers la doc de ces fonctions :o


Message édité par kao98 le 26-03-2009 à 17:02:28

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 26-03-2009 à 17:04:59    

Oups, never mind

Reply

Marsh Posté le 26-03-2009 à 17:29:10    

Les sessions ne peuvent contenir des ressources (genre connexion sur une BD) ou des instances d'objets. C'est pour ça que ça merdouille. Pour les objets, la solution est de sérializer l'objet : c'est la solution donnée par kao98. Par contre, cette solution ne marche par pour les ressources.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed