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 :

[POO] Erreur dans un array : __PHP_Incomplete_Class Object


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [POO] Erreur dans un array : __PHP_Incomplete_Class Object
    Bonjour,

    Voilà j'ai un petit soucis, en fait je pars d'un fichier dans lequel j'ai sérialisé un Array. Puis dans une autre page je le désérialise. Ce qui me donne quand je l'affiche :

    Code X : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Array
    (
    [0] => __PHP_Incomplete_Class Object
           (
                [__PHP_Incomplete_Class_Name] => Candidat
                [lang] => fr
                [hasValidStep] => 0
                [jobOfferId] => 
                [civ] => M
                [dateSubmit] => 28/08/2008
                [id] => 935
                [className] => RootObject
            )
    
        [1] => __PHP_Incomplete_Class Object
            (
                [__PHP_Incomplete_Class_Name] => Candidat
                [lang] => fr
                [hasValidStep] => 0
                [jobOfferId] => 
                [civ] => Mme
                [dateSubmit] => 28/08/2008
                [id] => 935
                [className] => RootObject
            )
    )

    Ma question est simple : Comment accéder à la variable M ou Mme contenu dans ce tableau.
    Auriez vous une idée car j'ai l'impression que "__PHP_Incomplete_Class" m'empêche d'accéder aux données de mon tableau.

    Merci à ceux qui pourront m'aider ! A+

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour et bienvenue sur le forum

    L'erreur que tu obtiens est une erreur classique des problèmes de tranferts d'objet. En l'occurrence, tu dois avoir un objet Candidat, qui ne doit pas être sérialisé correctement ou dont la définition manque dans la page d'arrivée.

    Comment transmets-tu cet objet ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Alors tout part d'une requete sur une BDD qui est ensuite affichée dans un tabeau. Moi je récupére ces données (un Array) que je sérialise et que j'enregistre dans un fichier.
    Puis, sur un autre site, en local, je charge le fichier puis je le déserrialise ce qui me redonne un array et c'est dans celui ci que je cherche a récupérer certaines informations.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Si tu travailles vraiment avec des tableaux, c'est bizarre, vu que c'est plutôt une erreur sur un objet...

    Peut-on avoir un bout de code ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voici un bout de code, donc tout part d'un tableau généré par le m oteur de template smarty. Je sérialise les données de ce tableau et les insére dans un fichier (contenant $export)

    $listCandidats = CandidatDao::listCandidats($lang, $pageNumber, $nbMaxItems);
    $smarty = new RootSmarty();
    $export = serialize($listCandidats);

    puis sur une autre page j'importe mon fichier

    $contents = unserialize($contents);
    $array = $contents;

    voilà mon $array dans lequel je souhaite récupérer das informations ...

    une idée ?

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    A mon avis $listCandidats n'est pas un tableau, c'est un objet ésotérique de smarty...

    Si tu fais un var_dump($listCandidats ) avant de le serialiser quel est le type renvoyé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $listCandidats = CandidatDao::listCandidats($lang, $pageNumber, $nbMaxItems);
    echo '<pre>';
    var_dump($listCandidats);
    echo '</pre>';

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il s'agit d'un tableau d'objets mais la [déclaration de la] classe des objets qu'il contient devrait figurer avant l'appel à unserialize. Sans cela tout objet perdrait son "identité", PHP étant incapable de faire le lien entre l'objet et la classe à ce moment-là, la classe PHP_Incomplete_Class, prévue pour ce genre de cas de figure, prend alors le relais.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Problème résolu !
    Merci Celira et julp
    Il s'agissait bien d'un tableau d'objets pour lequel il manquait la déclaration de la classe Candidat...
    C'est vrai que c'était un problème "évident" et pourtant j aurais quand même perdu beaucoup de temps dessus !!!
    Merci de votre aide !
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur dans un array
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 23/12/2012, 15h48
  2. [POO] perdu dans mon foreach d'array et d'objet
    Par noobC dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2008, 10h37
  3. [POO] Suppresion d'un objet dans un array
    Par Myfred dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/03/2008, 15h38
  4. [POO] Erreur dans ma classe de galerie
    Par gtraxx dans le forum Langage
    Réponses: 4
    Dernier message: 12/01/2008, 00h25
  5. [POO] Erreur Trying to get property of non-object
    Par Niouts dans le forum Langage
    Réponses: 14
    Dernier message: 13/09/2006, 11h09

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