Objet et Session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Objet et Session

par IDNoires » 02 févr. 2006, 19:01

ça y est j'ai trouvé....
Il restait un session_start() dans un include loin loin loin dans un des scripts de configuration... le problème vient donc de là...

par rami » 02 févr. 2006, 18:08

Fais voir un exemple tel quel de la page où ca se passe.

par IDNoires » 02 févr. 2006, 15:54

Actuellement dans mon php.ini il y a :

; Initialize session on request startup.
session.auto_start = 0

par rami » 02 févr. 2006, 15:23

Vérifies que session.auto_start soir à Off dans la configuration du serveur HTTP.

par IDNoires » 02 févr. 2006, 15:05

Il faut que la définition de la classe soit incluse avant le session_start().

session_start() tente de délinéariser ton objet mais vu qu'il ne connaît pas la structure de ta classe, il lui donne ce joli nom __PHP_Incomplete_Class Object.

Il suffit de faire un require_once du fichier contenant la définition de ta classe avant de faire session_start().
je sais bien et c'est ça qui m'embête...
c'est que j'ai déjà l'include_once avant le session_start()...

par rami » 02 févr. 2006, 12:58

Il faut que la définition de la classe soit incluse avant le session_start().

session_start() tente de délinéariser ton objet mais vu qu'il ne connaît pas la structure de ta classe, il lui donne ce joli nom __PHP_Incomplete_Class Object.

Il suffit de faire un require_once du fichier contenant la définition de ta classe avant de faire session_start().

par IDNoires » 02 févr. 2006, 12:33

Ma question n'est pas illogique, mais je me suis effectivement mal exprimé.

Ma classe est vide car elle se résume à cela :
class Devis{

}
On peut créer un objet d'une telle classe et le mettre dans une session.
$oDevis = new Devis();
$_SESSION["oDevis"] = $oDevis; // ou session_register("oDevis");
En faisant un dump de $_SESSION, juste après l'enregistrement de ma classe dans la session j'obtiens.
[oDevis] => Devis Object ( )
L'objet est donc bien dans la session.
Mais sur la page suivante le dump de $_SESSION me donne
[oDevis] => __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => Devis )

Re: Objet et Session

par Cyrano » 02 févr. 2006, 10:43

La classe est entièrement vide. Pas de membres ni de fonctions membres.

Quelqu'un sait il pourquoi je n'arrive pas à mettre la classe dans la session ?
C'est un peu comme si tu disais : "ma bouteille est vide, quelqu'un sait-il pourquoi je n'arrive pas à remplir mon verre ?"
Pourrais-tu reformuler de façon logique ta question ?

Objet et Session

par IDNoires » 02 févr. 2006, 09:39

Bonjour,

j'ai un petit soucis.
J'essaie dans une première page de mettre dans ma session un objet,
j'affiche le contenu de la variable $_SESSION.
Array ( [SESSION] => Array ( [langue] => fr [devise] => 2 [user] => 1 [client] => 1 ) [cart] => Cart Object ( [items] => Array ( ) [total] => 0 [totalttc] => 0 ) [dtp] => 1 [oDevis] => Devis Object ( ) )
Sur la seconde page, j'affiche le contenu de la variable $_SESSION, et j'obtiens :
Array ( [SESSION] => Array ( [langue] => fr [devise] => 2 [user] => 1 [client] => 1 ) [cart] => Cart Object ( [items] => Array ( ) [total] => 0 [totalttc] => 0 ) [dtp] => 1 [oDevis] => __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => Devis ) )
La classe est définie avant le session_start().
La classe est entièrement vide. Pas de membres ni de fonctions membres.

Quelqu'un sait il pourquoi je n'arrive pas à mettre la classe dans la session ?
Merci d'avance.