Page 1 sur 1

serialization

Posté : 15 mai 2007, 14:31
par ours-blanc-
salut, pourriez vous me dire a quoi sert la serialization? (et son contraire)

J'ai lu que ca servait a lineariser des variables pour les passer d'un script a un autre mais ca me parle pas trop comme explication.

on ne pourrait pas par exemple passer une session en parametres a un script sans serializer c'est ca?


merci!

Posté : 15 mai 2007, 15:00
par Ultim4T0m
Peut-être un début de piste sur wikipedia :

http://fr.wikipedia.org/wiki/S%C3%A9rialisation

Posté : 15 mai 2007, 15:07
par Ryle
Pour te donner quelques exemples simples, on ne peut par exemple pas passer un objet (avec ses attributs et ses méthodes) en session. En revanche on peut y mettre des chaines ou des tableaux. On va donc sérialiser notre objet pour le transformer en chaine, et ainsi pouvoir le coller dans la session. Il ne restera plus qu'à le dé-sérialiser pour retrouver toute la structure de l'objet :)

Un autre exemple, pas forcément judicieux, mais potentiellement intéressant : si tu as un tableau complexe de valeur en php, plutôt que d'enregistrer les valeurs une par une dans ta base de données (en supposant que tu n'ais pas l'usage des valeurs unitairement), tu pourrais très bien sérialiser le tableau, stocker la chaine dans un varchar, et ainsi récupérer directement ton tableau structuré depuis ta base, sans avoir à te casser la tête pour le reconstruire :)

Bref, je dirais que le but, c'est de pouvoir conserver des structures entières, en dépit de passages par des formats qui ne les tolèrent pas nécessairement :)

Posté : 15 mai 2007, 15:11
par ours-blanc-
merci bien

par contre je rencontre un probleme avec les sessions

J'ai une session que je veux passer a un script, est ce que je dois la serializer ou la unserializer?

si je fait serialize il me rajoute des caracteres avant et apres la valeur de ma session, et si je fait unserialize il me met un message d'erreur :

Code : Tout sélectionner

Notice: unserialize(): Error at offset 0 of 5 bytes in c:\program files\easyphp1-8\www\sitenovabiotis\zone-entreprise\servlet\servlet.php on line 96
quelqu'un aurait une idée?

merci

Posté : 15 mai 2007, 15:17
par Ryle
A priori, il faudrait la serialiser... mais j'avoue ne pas du tout voir l'intérêt de ce que tu veux faire.... il suffit juste d'un session_start() pour que ton script ait accès à la session, donc pourquoi vouloir la sérialiser et qu'est ce que tu essayes de sérilaiser concrêtement ?

Posté : 15 mai 2007, 15:18
par Sékiltoyai
1) Qu'appelles tu passer une session à un script ?
2) On ne unserialize qu'une chaine passée à la fonction serialize, donc on serialize avant, et on unserialize après..

Posté : 15 mai 2007, 15:50
par Invité
oui c'est vrai ma question peut paraitre bizarre, je suis alle un peu vite la. Le probleme c'est que je fais une application pour un stage et on m'a dit qu'il fallait obligatoirement serializer mes sessions pour les passer. Je vais demander plus de precision.
merci

Posté : 15 mai 2007, 16:22
par ours-blanc-
c'est bien moi qui ai posté le message ci dessus :D