|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() |
Bonjour à tous,
J'ai un petit soucis pour récupérer un objet sur la session dans le cadre d'une connexion par login mot de passe, je tourne en rond depuis un moment d'où ce post. Je vous explique : Si l'utilisateur est bien identifié au moment du post du formulaire, alors je sauvegarde mon objet user correctement instancié sur la session : Code :
Code :
Notice: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition <b>user</b> of the object you are trying to operate on was loaded _before_ comme si l'objet n'était pas bien instancié ! Remarquez que je passe bien par un cast (object). Quelqu'un a-t'il une idée ? Par avance merci et... bonne année à tous |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Tu fais bien un session_start() sur chaque page ?
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#3 | ||||
|
Membre du Club
![]() |
C'est bon, j'ai trouvé la solution au pb. Cela semblera peut-être trivial pour certains, dans ce cas je m'en excuse, mais je ne suis pas encore un développeur php aguerri
Quelques explications, peut-être que cela servira. Il faut tout simplement veiller à bien inclure la définition de la classe de l'objet avant le démarrage de la session. Comme je fonctionne le plus souvent par include, je n'avais pas remarqué que mon inclusion de classe se faisait après le démarrage de la session, du coup php ne peut connaitre la structure de cet objet sauvegardé ! Code incorrect : Code :
Code correct : Code :
Je m'interdis maintenant les session_start dans mes fichiers include, et pour ne pas me tromper, je préfixe à présent tous ces fichiers par inc_ même si ces derniers sont dans des répertoires bien identifiés sous /include. Dorénavant, les session_start sont faits dans les pages principales, avant la balise <html>, cela m'évitera de plus les messages d'erreur comme quoi le header a déjà été envoyé ou bien encore des doublons de session_start. Voilà, j'espère ne pas avoir écrit trop d'inepsies et j'espère aussi que mes mésaventures profiteront à d'autres. Très bonne fin de week-end à tous -David- |
||||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
Bonjour JWhite,
Merci pour ta réponse, le pb était bien en relation avec le session_start, je le faisais mais pas dans le bon ordre comme expliqué dans mon précédent post. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com