IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mise en session d'objets ayant des références à dautres objets


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Mise en session d'objets ayant des références à dautres objets
    Bonjour...

    J'ai un probleme avec la gestion des sessions et notament avec le passage des objets par une session

    Voici l'objet que je souhaite enregistrer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    	class XmlDocument extends DomDocument	
    	{
    		public function __construct($xmlFile)
    		{
    			parent::__construct();
     
    			// chargement du xml
    			$this -> load($xmlFile);			
    		}
     
                    public function getRootNodeName()
                    {
                            return $this -> documentElement -> localName;
                    }
    		....
    	}

    Dans fichier1.php, je l'instancie et l'enregistre dans la session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            require('classes/XmlDocument.class.php');
            session_start();
     
            $xml = new XmlDocument("xhtml_css.xml");
            $_SESSION["objet"] = serialize($xml);
    Dans le fichier2.php, je le récupére et tente d'appeler la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            require('classes/XmlDocument.class.php');
            session_start();
     
            $newobj = unserialize($_SESSION["objet"]);
     
            echo $newobj -> getRootNodeName();
    et le navigateur m'insulte en me répondant :

    Warning: XmlDocument::getRootNodeName() [function.XmlDocument-getRootNodeName]: Invalid State Error in /home/alpax/www/graphart/EasyPageXmlEditor-0.2/classes/XmlDocument.class.php on line 52
    Je voudrais pouvoir récuperer mon objet avec le domDocument dont il hérite... Comment faire....

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    tu devrais faire un var_dump($newobj) car documentElement étant un membre il me semble qu'il ne devrait pas y avoir de problème avec ce code.

    [edit]
    Citation Envoyé par man
    Warning

    Some types of data can not be serialized thus stored in sessions. It includes resource variables or objects with circular references (i.e. objects which passes a reference to itself to another object).
    Il semblerait que ton problème vienne de là, tu peux tenter de le sauver en BDD ou dans un fichier pour en être sur.
    [/edit]
    Vive les roues en pierre

Discussions similaires

  1. [MCD] Comment modéliser des objets ayant des modèles ?
    Par insane_80 dans le forum Schéma
    Réponses: 2
    Dernier message: 24/12/2014, 10h50
  2. Réponses: 18
    Dernier message: 01/04/2013, 17h07
  3. Réponses: 1
    Dernier message: 02/06/2011, 16h17
  4. [EF4] Problème lors de l'insertion d'un objet ayant des dépendances
    Par redcurve dans le forum Entity Framework
    Réponses: 3
    Dernier message: 06/03/2011, 13h12
  5. MVVM et Binding d'objets contenant des listes d'objets
    Par Tanous dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 21/07/2010, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo