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] Un objet enregistré en session qui perd son type (deviens array)


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Développeur multimédia
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 8
    Points
    8
    Par défaut [POO] Un objet enregistré en session qui perd son type (deviens array)
    Bonjour,

    J'ai un problème avec un objet stocké en séssion.
    Le fichier de définition de classe est bien appalé avant session_start() et il fonctionne parfaitement sur EasyPHP. Seulement au moment de migrer sur un hebergement "1&1", l'objet commence à faire des siennes :

    Fatal error: Call to a member function on a non-object in [chemin]/panier.php
    En fait en affichant le contenu de $_SESSION à chaque page je me rend compte que l'objet se transforme en ARRAY.

    Quand je veut afficher le contenu de cet ARRAY il contient en [0] un ARRAY vide et en [1] le nombre 0.

    Et ensuite, suivant son humeur il se retransforme en OBJECT (inutilisable) ou en ARRAY (au choix).

    Il ne semble pas y avoir de logique dans le type que prend cette variable à chaque nouvelle page et j'ai bien vérifié que la variable n'était pas manipulé ailleurs dans le code.

    Avez-vous une idée de ce qui se passe ?

    PS : Je suis nouveau sur le site (pas en programmation PHP) et j'ai déjà cherché sur le forum sans succés...

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Concrètement c'est quoi comme objet que tu enregistres ?
    Tu as essayé de le serializer avant de l'enregistrer dans ta session et de le déserializer quand tu le récupères ?

  3. #3
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    Effectivement, si tu ne sérialize pas, ca va être difficile...

    Pour info, la serialisation permet de tranformer un Objet en chaine de caractère afin de le passer dans une variable de SESSION, POST ou GET.

    L'intérêt est de garder le contexte d'execution d'un objet en passant d'un script à l'autre, car rappelons que quoi qu'il en soit, une fois le script terminé, les objets sont détruits !!!!

    Bref, ce petit historique pour dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $var=serialize($objet);
    $_SESSION['objet']=$var;
     
    /*.....Sur l'autre page : */
     
    $objet=unserialize($_SESSION['objet']);
    $objet->methode.....
    On notera sous PHP5 les méthodes magiques __sleep() et __wakeup(), permettant de paramétrer finement la sérialization d'un objet......

    Sous 1&1, tu es en PHP4 ou 5 ?

  4. #4
    Futur Membre du Club
    Développeur multimédia
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    En effet je n'avais pas sérialisé l'objet...
    Je n'ai pas l'habitude de mettre des objets en session...

    Merci pour la réponse !

  5. #5
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    De rein

    N'hésite pas !!!!

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

Discussions similaires

  1. [cx_freeze] Application PyQt qui perd son icône ?
    Par Darel dans le forum Déploiement/Installation
    Réponses: 2
    Dernier message: 09/08/2011, 19h09
  2. tracer les sessions qui accèdent à son poste
    Par couse1 dans le forum Débuter
    Réponses: 1
    Dernier message: 20/02/2009, 10h40
  3. Réponses: 0
    Dernier message: 18/02/2009, 08h45
  4. Qui perd son temps?
    Par Vespasien dans le forum SSII
    Réponses: 13
    Dernier message: 27/11/2008, 11h05
  5. [Excel] Bouton qui perd son nom
    Par steps5ive dans le forum Excel
    Réponses: 2
    Dernier message: 21/03/2007, 13h42

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