Objet de page en page la serialization ne suffit pas?

dracito Messages postés 11 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 9 mars 2004 - 8 mars 2004 à 14:15
dracito Messages postés 11 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 9 mars 2004 - 9 mars 2004 à 12:32
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

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
9 mars 2004 à 11:41
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
0
dracito Messages postés 11 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 9 mars 2004
9 mars 2004 à 12:32
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?
0
Rejoignez-nous