[resolu]Passer un objet dans une variable de session

Passer un objet dans une variable de session [resolu] - PHP - Programmation

Marsh Posté le 05-04-2006 à 16:40:34    

Bonzour tout le monde,
 
Voilà j'ai un petit souci, je souhaiterais faire passer un objet dans une variable de session et malheurement celà échoue voilà monde :
 

Code :
  1. page1.php
  2.             $utilisateur = New Utilisateur($_POST['email']);
  3.             $_SESSION['utilisateur'] = serialize($utilisateur);
  4. // J'essaye de récupérer mon objet
  5. page2.php
  6.             $utilisateur=unserialize($_SESSION['utilisateur']);
  7.           echo $utilisateur->mdp;


Je tiens à préciser que je fais bien appelle à mes classes dans ces 2 pages, le message d'erreur que j'ai est :
 

Code :
  1. Notice:  unserialize() [function.unserialize]: Argument is not a string
  2. //et par conséquence
  3. Notice:  Trying to get property of non-object


Donc voilà si vous avez une idée je suis pas contre :)
Merci d'avance


Message édité par Eggystyle le 05-04-2006 à 16:57:33
Reply

Marsh Posté le 05-04-2006 à 16:40:34   

Reply

Marsh Posté le 05-04-2006 à 16:41:59    

As tu essayé d'afficher le contenu de $_SESSION['utilisateur'] ?


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 05-04-2006 à 16:47:50    

ouip, alors si je fais un
 

Code :
  1. echo (unserialize($_SESSION['utilisateur']));


 
il me sort un Object id #2
 
et si je fais un  
 

Code :
  1. echo ($_SESSION['utilisateur']);


 
il me sort tout les propriétés de mon objet de manière sérilalizé jimagine :  
 O:11:"Utilisateur":11:{s:2:"id";s:1:"2";s:3:"nom";s:8:"Le Berre";s:6:"prenom";s:6:"Thomas";s:5:"email";s:15:"krovomi@msn.com";s:9:"telephone";s:10:"06789876";s:7:"adresse";s:25:"15 Rue des champs Elysées";s:2:"cp";s:5:"75001";s:5:"ville";s:5:"Paris";s:10:"profession";s:6:"Avocat";s:3:"mdp";s:5:"chacu";s:5:"admin";s:1:"1";
 
donc je comprends encore moins l'erreur qu'il met car tout a l'air de bien fonctioner

Message cité 2 fois
Message édité par Eggystyle le 15-09-2012 à 20:28:28
Reply

Marsh Posté le 05-04-2006 à 16:50:53    

bon je sais pas si hardware.fr fait marcher le code mais  je viens de refaire ce que j'ai montré dans mon premier post et ca passe !  
 
Rah qu'est que je fous dans une licence de développeur moi :p j'aime pas ca !!

Reply

Marsh Posté le 05-04-2006 à 16:51:49    

Je crois me rappeler que ton objet ne peut être correctement récupéré qu'après la déclaration de la classe à laquelle il appartient... est-ce le cas...?


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 05-04-2006 à 16:53:48    

Ouip je fais bien un require de mon fichier comportant la déclaration de classe :)  je te remercie mais désormais ca marche donc bon il ya des mystères sans explication et on va mettre ce bout de code sur ce compte :p

Reply

Marsh Posté le 05-04-2006 à 16:59:16    

tiens je vois que tu es toulousain et tu bosses en tant que développeur web. Tu bosses dans quel boite si c'est pas indiscret ?
 
(Je fais ma licence pro (orientée dev web)sur Toulouse)

Reply

Marsh Posté le 05-04-2006 à 19:16:18    

Pour conserver un objet en session, il y a plus simple
cf 'Tuto des scripts PHP'


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 05-04-2006 à 20:03:30    

Euh... c'est propre ça, de stocker un objet directement en session sans le sérialiser...? Je sais que ça posait des problèmes avant PHP4 (perte des méthodes de l'objet) mais tout de même...

Reply

Marsh Posté le 05-04-2006 à 20:05:19    

j_lecruel a écrit :

Euh... c'est propre ça, de stocker un objet directement en session sans le sérialiser...? Je sais que ça posait des problèmes avant PHP4 (perte des méthodes de l'objet) mais tout de même...


 
bah je sais pas, mais pour l'instant, j'ai ne suis pas encore tombé sur des contres indications donc rruullleezzz  [:ddr555]


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 05-04-2006 à 20:05:19   

Reply

Marsh Posté le 06-04-2006 à 01:05:52    

en meme temps c pas tellement plus violent de le serializer ...

Reply

Marsh Posté le 06-04-2006 à 08:51:11    

Oui, et je trouve bien pplus propre de stocker l'objet sous une forme "standard" (string en l'occurence).  
 
De plus en serialisant l'objet on peut jouer avec les fonctions __sleep() et __wakeup, ce qui est très utile pour certains objets.


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 15-09-2012 à 20:27:42    

Eggystyle a écrit :

ouip, alors si je fais un
 

Code :
  1. echo (unserialize($_SESSION['utilisateur']));


 
il me sort un Object id #2
 
et si je fais un  
 

Code :
  1. echo ($_SESSION['utilisateur']);


 
il me sort tout les propriétés de mon objet de manière sérilalizé jimagine :  
 O:11:"Utilisateur":11:{s:2:"id";s:1:"2";s:3:"nom";s:8:"Le Berre";s:6:"prenom";s:6:"Thomas";s:5:"email";s:15:"krovomi@msn.com";s:9:"telephone";s:10:"0678653453";s:7:"adresse";s:25:"15 Rue des champs Elysées";s:2:"cp";s:5:"75001";s:5:"ville";s:5:"Paris";s:10:"profession";s:6:"Avocat";s:3:"mdp";s:5:"chacu";s:5:"admin";s:1:"1";
 
donc je comprends encore moins l'erreur qu'il met car tout a l'air de bien fonctioner


Reply

Marsh Posté le 15-09-2012 à 20:28:00    

Eggystyle a écrit :

ouip, alors si je fais un
 

Code :
  1. echo (unserialize($_SESSION['utilisateur']));


 
il me sort un Object id #2
 
et si je fais un  
 

Code :
  1. echo ($_SESSION['utilisateur']);


 
il me sort tout les propriétés de mon objet de manière sérilalizé jimagine :  
 O:11:"Utilisateur":11:{s:2:"id";s:1:"2";s:3:"nom";s:8:"Le Berre";s:6:"prenom";s:6:"Thomas";s:5:"email";s:15:"krovomi@msn.com";s:9:"telephone";s:10:"0654356323";s:7:"adresse";s:25:"15 Rue des champs Elysées";s:2:"cp";s:5:"75001";s:5:"ville";s:5:"Paris";s:10:"profession";s:6:"Avocat";s:3:"mdp";s:5:"chacu";s:5:"admin";s:1:"1";
 
donc je comprends encore moins l'erreur qu'il met car tout a l'air de bien fonctioner


Reply

Sujets relatifs:

Leave a Replay

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