PHP4 serialize() - PHP 5unserialize(), une différence ?
Bonjour à tous,
Encore un souci à la con concernant la sérialisation d'une variable array.
Voilà je cohabite en local sur un PHP4 qui appelle un script sur le net tournant sur PHP5.
Du coup j'envoies en formulaire (un <input type='hidden' ...>) mon tableau sérializé.
Problème, lorsque je unserialize ma variable, bizzarement mon tableau retourné par unserialize() est vide O_o.
La première question que je me demandais, afin de chercher un peu avant de demander plus d'aide ^^, est la suivante :
Est ce une serialisation faite sous PHP4 est compatible PHP5 ?
Deuxième question, est ce qu'un champ $_POST est limité en nombre de caractères sachant que ma variable à serializée peut atteindre des milliers de caractères ?
Merci d'avance :)
Webmaster de Clikmag http://www.clikmag.fr
Est ce une serialisation faite sous PHP4 est compatible PHP5 ?
Je ne sais pas, mais je pense fortement que c'est compatible.
Tu peux le tester facilement, vu que tu as un serveur PHP 4 et un autre en PHP 5 : serialize la même chose sur les deux et vois le résultat, si çà peut te rassurer.
Oui, le post est limité par la configuration du php.ini.
Apparemment si ça parait incompatible :s
Je viens de tester le meme code sous PHP4 et ça passe nickel O_o
En fait mon souci c'est que je dois récupérer un tableau sous PHP4 dans un fichier PHP5. Il y a peut être un autre moyen que serialize() ?
Webmaster de Clikmag http://www.clikmag.fr
Quelle est ta version de php 4 ?
4.3.10
Webmaster de Clikmag http://www.clikmag.fr
Je n'ai pas de PHP 4 sous la main pour tester.
Mais cela m'étonne beaucoup quand même.
Je ne vois nulle part quelqu'un qui a le même problème que toi sur le net (et ce n'est pas la première fois que tu as des soucis de serialize / unserialize si je me souviens bien).
Peut être en effet que j'ai du mal avec cette fonction qui sait.
Ca fonctionne bien comme ceci :
// Serialise le tableau
$serial = serialize($array);
<a href='page.php?tableau='.$serial.'>Lien</a>
// Puis sur l'autre page
$unserial = unserialize($_GET['serial']);
puis pour accéder à une valeur du tableau :
echo unserial[0]; // Par exemple
Webmaster de Clikmag http://www.clikmag.fr
Je vais commencer par faire le paranoïaque :)
Inclure une donnée sérialisée dans une page Web, puis la récupérer n'est pas forcément une bonne idée. En effet, tu dois tout de même contrôler l'ensemble des données présentent dans le tableau récupéré. Or, je ne crois pas que tu pense vérifier cette donnée.
En ce qui concerne la compatibilité entre différentes versions PHP, il ne faut pas oublier qu'il y a parfois des corrections de bogue qui entrainent des incompatibilités.
De plus, d'après le fichier ./ext/standard/var.c de PHP 5.2.1 (paquet fournit par DotDeb), il y a un comportement de serialize qui est apparu dans la version 5. Donc, je ne jurerais pas de la compatibilité à 100 %.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
En fait LupusMic, vu que je n'arrivais pas à déjà envoyer rien qu'une variable sérializée correctement, et que LA_GLOBULE m'a même mit un doute ^^, j'ai tenté le plus simple possible.
Mais apparemment, c'est sur le serveur Oueb en ligne que la fonction semble bogger :s
Du coup là j'essaye de passer autrement, via une chaine à laquelle je met mes ID que je veux faire passer, et ensuite j'explose la chaine pour avoir mes ID. Pas très sécu, mais si ça fonctionne, je me pencherais sur la sécu, d'ailleurs si certains ont des idées pour sécuriser tout ça, je suis preneur :)
Webmaster de Clikmag http://www.clikmag.fr
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: