Précédent   Forum des professionnels en informatique > PHP > Outils > WAMP
WAMP Forum d'entraide sur WAMP (Windows Apache MySQL PHP) : installation, utilisation, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 16h05   #1
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
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 ?
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 16h19   #2
Membre habitué
 
Inscription : mai 2004
Messages : 200
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 200
Points : 101
Points : 101
Ton serveur accepte t'il le php 5?
__________________
La programmation, c'est tout un art
gregal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 16h53   #3
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
oui je suis en php5
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 09h37   #4
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
Et précisemment ce que me donne phpinfo : Online/ProXaD PHP Version 5.2.1-1

Help please
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 15h41   #5
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 104
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2005
Messages : 104
Points : 37
Points : 37
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 !
petchos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 10h20   #6
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
oui, je vais faire comme ça si je ne trouve pas de solutions, merci
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 11h22   #7
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
Implante les méthodes magique __sleep et __wakeup pour sérialiser comme il te convient dans chaque classe que tu sérialize.
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 15h09   #8
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
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... ?
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 16h39   #9
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
J'ai essayé ça :

Code :
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)
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 08h47   #10
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
Tu as une erreur car tu dois retourner une chaine de caractères et pas un tableau.
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 09h18   #11
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
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

Citation:
__sleep doit retourner un tableau comportant le nom des variables de la class qui seront sauvegardées.
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 09h47   #12
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
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 ?
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 10h06   #13
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
montre un peu ton code de sérialisation classique (celui d'origine) et la désérialisation stp.
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 10h58   #14
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 69
Points : 19
Points : 19
Ca y est j'ai trouvé !!

En fait à chaque fois que je faisais :

Code :
$client = unserialize($_SESSION['client']);
cela modifiait la variable de session du coup j'ai résolu mon problème en plaçant un

Code :
$_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...
DevloNewb' est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h07.


 
 
 
 
Partenaires

Hébergement Web