Objet de page en page la serialization ne suffit pas?

Signaler
Messages postés
11
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
9 mars 2004
-
Messages postés
11
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
9 mars 2004
-
Bonjour,
Nous avons programmé un site dont les scripts php utilisent des objets.
Notre server local de test ne rencontre pas d'erreur pour nos scripts au niveau du passage des instances d'une page à l'autre car nous effectuons une serialisation des objets dans la variable $_POST.
Pouvez vous nous indiquer pourquoi les scripts identiques provoquent des erreurs sur l'hébergement que nous louons à OVH, sur ce point précis(passage d'objet d'une page à l'autre).

L'erreur obtenue sur les serveurs disatants ->
Fatal error: Call to a member function ma_fonction() on a non-object in /home/page.php on line 21

La ligne 21 est du genre : objet_délinearisé->methode();

Nous précisons que la classe est bien inclus au debut du script.

2 réponses

Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
salut,
le plus simple serais de passer par les sessions (qui automatisent la serialisation et deserialisation).
as tu verifier les valeurs du phpinfo pour les sessions et la serialisation
Duss
Messages postés
11
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
9 mars 2004

Merci.
Nous ne voulons pas utiliser les sessions.
Les valeurs pour les sessions et la serialisation sont identique sur le serveur local et distant.
Nous nous sommes apperçu que la serialisation sur les serveur distant (ovh) ajoutait des anti-slashs (\) dans la chaine linéarisée.
Il suffit donc de les délinéarisé comme ceci :

unserialize(stripslash($_POST['variable']))

Mais un autre problème survient : comment faire pour un objet qui contient une variable de type String pouvant contenir ( ` ' " / \ { } <> ).
La serialisation est incomplète car arretée par un caractère clé

L'utlisation de stripslashes(), htmlspecialchars() et htmlentity() ne nous à pas encore permis de resoudre le problème c
un vrai casse tete.

Comment faire?