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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème de sérialisation [Wamp]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut Problème de sérialisation
    Bonjour,

    Dans mon appli PHP, je fais appel dans certains scripts à serialize et unserialize pour transferer des objets dans des variables de sessions. Si cela marche très bien en local avec la dernière version de Wamp, ça ne marche pas lorsque j'ai uploadé le site sur le serveur (hebergé chez online.net), j'obtiens un warning à la désérialisation :

    Warning: unserialize() expects parameter 1 to be string, object given in [...].php5 on line [...]

    Une idée ?

  2. #2
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    Ton serveur accepte t'il le php 5?
    La programmation, c'est tout un art

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    oui je suis en php5

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    Et précisemment ce que me donne phpinfo : Online/ProXaD PHP Version 5.2.1-1

    Help please

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 69
    Points
    69
    Par défaut
    J ai eu la meme erreur avec serialize / unserialize,

    ne trouvant pas la solutions, j ai mis mon tableau dans une chaine avec un caractere particulier entre chaque champs et apres recupération par post dans mon autre page j explode ma chaine selon mon caractere particulier et je retrouve mon tableau...

    Mais ça solutionne pas l erreure, juste une derivation !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    oui, je vais faire comme ça si je ne trouve pas de solutions, merci

  7. #7
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Implante les méthodes magique __sleep et __wakeup pour sérialiser comme il te convient dans chaque classe que tu sérialize.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Korko Fain
    Implante les méthodes magique __sleep et __wakeup pour sérialiser comme il te convient dans chaque classe que tu sérialize.
    merci korko fain, mais je dois mettre quoi dans ces fonctions... ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    J'ai essayé ça :

    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
    	public function __sleep()
    	{
    		$tabReturn = array();
     
    		$tabReturn[0] = $this->getId();
    		$tabReturn[1] = $this->getRs();
    		$tabReturn[2] = $this->getAdresse();
    		$tabReturn[3] = $this->getVille();
    		$tabReturn[4] = $this->getCp();
    		$tabReturn[5] = $this->getFixe();
    		$tabReturn[6] = $this->getPort();
    		$tabReturn[7] = $this->getEmail();
     
    		return($tabReturn);
    	}
    mais j'obtiens une erreur interne du serveur...

    (sachant que les getBidule renvoient la propriété Bidule de l'instance this)

  10. #10
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Tu as une erreur car tu dois retourner une chaine de caractères et pas un tableau.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par Korko Fain
    Tu as une erreur car tu dois retourner une chaine de caractères et pas un tableau.
    hmm c'est pas ce que je lis un peu partout...

    http://7px.net/Informatique/Programm...articles?nid=5

    __sleep doit retourner un tableau comportant le nom des variables de la class qui seront sauvegardées.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    Je crois que j'ai compris en fait __sleep doit retourner les noms d'attributs et pas la valeur de ceux-ci, enfin de toute façon ça ne change rien, j'ai toujours l'erreur de sérialisation/déserialisation du début...

    Tu avais une idée précise du problème Korko fain ?

  13. #13
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    montre un peu ton code de sérialisation classique (celui d'origine) et la désérialisation stp.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Points : 47
    Points
    47
    Par défaut
    Ca y est j'ai trouvé !!

    En fait à chaque fois que je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client = unserialize($_SESSION['client']);
    cela modifiait la variable de session du coup j'ai résolu mon problème en plaçant un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['client'] = serialize($client);
    à la fin de chaque page où je déserialisais un objet pour continuer à transmettre l'objet dans la page suivante.

    Bizare que ça marchait en local par contre...

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

Discussions similaires

  1. [Tableaux] Problème de sérialisation
    Par Langly dans le forum Langage
    Réponses: 1
    Dernier message: 29/12/2006, 20h22
  2. [Débutant] Problème de sérialisation collection
    Par Michel Hubert dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 21/12/2006, 15h17
  3. problème de sérialisation
    Par yoyomc dans le forum Langage
    Réponses: 5
    Dernier message: 17/12/2006, 23h02
  4. Réponses: 4
    Dernier message: 12/12/2006, 10h22
  5. Problème de sérialisation
    Par CheryBen dans le forum Entrée/Sortie
    Réponses: 18
    Dernier message: 15/09/2005, 11h55

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