[unserialize] php - ojet

Résolu/Fermé
rom1 - 13 avril 2005 à 15:42
 Clariane - 2 mars 2010 à 13:41
Bonjour à tous !

J'ai un petit problème avec la "désérialisation" de mon objet... J'ai un objet document (doc, stocké dans le fichier classe_doc.php) que je veux passer par la méthode post à une autre page. En fait j'affiche une liste de tous mes documents avec des checkbox à côté et puis l'utilisateur valide (classique). Mon objet doc contient un nom, un chemin vers le fichier "physique" et une date de dernier accès
J'ai donc mon objet et j'appelle la fonction qui contient les lignes suivantes, fonction contenue dans la classe :
  $serie=serialize($this)
  <input type='checkbox' name='selectfax[]' value=".$serie." unchecked >


La sérialization fonctionne car sur l'autre page, en affichant mon objet transmis j'obtiens bien :
O:3:\"doc\":3:{s:3:\"nom\";s:6:\"passwd\";s:6:\"chemin\";s:11:\"/etc/passwd\";s:6:\"zetime\";s:18:\"1/04/2005: 


Par contre la désérialisation, peu importe la page sur laquelle je l'effectue, ne fonctionne pas. Je n'ai pas de message d'erreur, mais lorsque je teste la valeur retournée, elle m'indique false. Donc évidemment ça pose problème... Je précise au passage que dans ma page de départ (celle qui envoie le formulaire avec l'objet sérializé) et dans celle de réception, j'ai bien inclue ma classe doc...
Si quelqu'un a une petite idée...
D'avance merci

++
Rom1
A voir également:

4 réponses

J'ai toujours du mal à comprendre le besoin de transmettre une serialisation php via url.. c'est une méthode qui me parrait assez peu sécurisé...
je lui préfère de loin le stockage en session, même si ça implique de rajouter quelques contrôles si on a plusieurs formulaires et qu'on veut pas de clash entre ceux ci.

J'en profite pour vous faire profiter d'un petit outil que j'ai mis en place, permettant d'avoir rapidement le résultat d'une deserialization.

http://www.unserialize.net

Comme vous le verrez, c'est basique... mais me servant beaucoup de serialization pour stocker en base pas mal de données pour lesquelles je n'ai pas forcément besoin de faire des recherches dessus (donc pas une colonne par donnée), j'avais souvent besoin d'un petit outil m'aidant à lire rapidement des données sérialisées. En outre, il m'arrive quelque fois d'avoir a faire a des problème de données serialisées.. où la serialisation est corrompu et il n'est pas évident de récupérer les données. J'ai donc mis en place un petit script qui permet de corriger certains de ces pbs. Du coup, ça permet de réparer un tableau mal sérialisé...

n'hésitez pas à me faire un retour... mais pas besoin de me dire que la page est horrible... ce n'était pas le but de faire un joli site pour cet outil de base !
1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 avril 2005 à 22:23
Salut,

Peut être:
$serie=urlencode(serialize($this));

Tu l'affiches de quelle manière? En utilisant $_POST ou $_GET ?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
13 avril 2005 à 22:54
Sinon essaie avec les sessions.

Au fait, je pense que tu devrais lire ça:
http://fr2.php.net/manual/fr/language.oop.serialization.php
0
Merci bien, les couples urlencode/serialize et stripslashes/unserialize fonctionnent très bien !
Merci encore pour cette aide !


++
Rom1
0