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.
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
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.