Problème serialize... - PHP - Programmation
Marsh Posté le 03-12-2006 à 02:33:18
Tu pourrais parler français et pas un vilain franglais typique de ceux qui croient encore qu'être bon développeur c'est tout angliciser
Tu t'es surement demandé dans un premier temps si la valeur issue de la sérialisation était bien stockée, correctement et entièrement je suppose
Ton addslashes() il est à quel endroit Tu as sans doutes compris que c'est juste pour parer aux délimiteurs et autres caractères spéciaux de mysql que tu peux avoir dans ce que tu veux stocker. Donc si tu échappes pour stocker, faut peut être "déséchapper" pour s'en resservir
Htmlentities te servira à rien dans ton cas
Donc pour qu'on puisse avancer, faut savoir si le problème est situé au niveau :
- du stockage
- du déstockage
- du unserialize()
En gros je suis quasi sur que soit c'est le stockage qui foire, soit le déstockage
Marsh Posté le 03-12-2006 à 03:09:08
Merci de me répondre !
voici mon code si ca peut t'eclairer :
Serialisation
Code :
|
Deserialisation
Code :
|
voila mon code, j'ai virer toute les diverses fonction que j'ai pu tester sans succès.
Edit : ce code marche très bien. sauf lorsqu'il il y a un simple quote saisie dans un des champs.
Marsh Posté le 03-12-2006 à 03:50:17
Mais est ce que tu es sur que tes données sont présentes dans la base
Parce que si t'échappes pas les guillements simples c'est normal que ça foire
Mais je répète ça sous entend d'éliminer les échappements quand tu récupères tes données
Marsh Posté le 03-12-2006 à 11:45:03
Sans un mysql_real_escape_string lors de l'insertion, bof bof
Marsh Posté le 03-12-2006 à 12:18:21
leflos5 a écrit : Mais est ce que tu es sur que tes données sont présentes dans la base |
oui car kan je fais un var_dump de ce qui se trouve dans le resultat de ma requete, il m'affiche bien tout, y compris ce p**** d'apostrophe, non echappé :
Code :
|
Il n'y a que quand je me ce foutu apostrophe que ca plante...
Marsh Posté le 03-12-2006 à 15:47:11
ok j'ai compris. je fais un str_replace de mon quote par son code ascii.
Marsh Posté le 27-05-2010 à 16:12:06
Bonjour,
j'ai le même problème, peut tu me montrer ton code ?
Marsh Posté le 30-05-2010 à 13:34:16
uh ! remontage de topic, j'ai fais ce truc il y a quatre ans, pour mes epreuves de BTS.. nostalgie oblige !
Donc... non je peux pas te montrer mon code !
Qu'est ce qui bloque chez toi ?
Marsh Posté le 30-05-2010 à 14:43:08
eh bien exactement comme toi a priori ma variable se désérialise bien sauf quand elle contient une apostrophe
Marsh Posté le 04-06-2010 à 10:27:53
addslashes sur toute tes valeurs des tableau avant de serializer
array_map($ârray2serialize,addslashes);
//puis inversement lors de la récupération
Marsh Posté le 02-12-2006 à 22:02:35
Bonsoir.
J'ai un problème avec la fonction serialize de PHP...
Explication :
j'ai 3 champs. Une fois rempli et validé, ca me donne un objet (PHP5).
Cet objet, je le serialise a l'aide de la fonction serialize() puis je stock la string dans la BdD.
Problème : Lorsque je unserialize un string precedemment mis dans une base de donnée, ca bloque, il ne me reconstruit pas l'objet et la fonction serialize renvoi false.
Attention : L'unserialize ne bloque QUE LORSQUE il y a une apostrophe dans un des champs rempli par l'utilisateur. Sans apostrophe tout marche nickel...
Oui j'ai chercher sur google qui m'a indiqué addslashes et html entities mais je n'ai rien reussi a faire...
J'ai aussi desactivé les magic quotes... j'y arrive pas.
Je sais que ca vient de la mais je sais pas comment faire pour resolver le problème.
Someone can help me?
Edit: j'utilise wamp 1.6.6 avec une BdD mysql.
Message édité par Agmoh le 02-12-2006 à 22:03:15