Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1907 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème serialize...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème serialize...

n°1485462
Agmoh
¯\_(ツ)_/¯
Posté le 02-12-2006 à 22:02:35  profilanswer
 

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
mood
Publicité
Posté le 02-12-2006 à 22:02:35  profilanswer
 

n°1485498
leflos5
On est ou on est pas :)
Posté le 03-12-2006 à 02:33:18  profilanswer
 

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 :o
 
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 :??: :d
 
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 :??: :whistle:
 
Htmlentities te servira à rien dans ton cas :jap:
 
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 ;)

n°1485502
Agmoh
¯\_(ツ)_/¯
Posté le 03-12-2006 à 03:09:08  profilanswer
 

Merci de me répondre !  
voici mon code si ca peut t'eclairer :  
 
 
Serialisation
 

Code :
  1. $ref=$_POST['ref'];
  2.   $lib=$_POST['lib'];
  3.   $prix=$_POST['prixht'];
  4.   $parfum=$_POST['parf'];
  5.   $stock=$_POST['stock'];
  6. $ins_glace=new glace($ref,$lib,$prix,$parfum,$stock);
  7. $chaine=serialize($ins_glace); //je serialize
  8. $sess_sql -> execute("INSERT INTO glace (ref) VALUES (' ".$chaine." ')" ); //je stock dans la BdD


 
 
Deserialisation

Code :
  1. $sess_sql=new sql();
  2. $result=$sess_sql -> execute("SELECT * FROM $type" );
  3. while ($tresult=$sess_sql -> traite($result))
  4. {
  5.    if($type=="patisserie" )
  6.    {$ref="refp";}
  7.    else {$ref="ref";}
  8.    $objet=unserialize($tresult[$ref]);
  9.    echo "<fieldset>";
  10.    $objet -> Afficher();
  11.    echo"</fieldset>";
  12. }


 
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.


Message édité par Agmoh le 03-12-2006 à 03:10:46
n°1485508
leflos5
On est ou on est pas :)
Posté le 03-12-2006 à 03:50:17  profilanswer
 

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 :spamafote:
 
Mais je répète ça sous entend d'éliminer les échappements quand tu récupères tes données :)

n°1485536
FlorentG
Unité de Masse
Posté le 03-12-2006 à 11:45:03  profilanswer
 

Sans un mysql_real_escape_string lors de l'insertion, bof bof :/

n°1485553
Agmoh
¯\_(ツ)_/¯
Posté le 03-12-2006 à 12:18:21  profilanswer
 

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 :
  1. "O:5:"glace":5:{s:13:"glaceparfum";s:1:"1";s:12:"glacestock";s:1:"1";s:12:"produitref";s:9:"fuck'ths";s:12:"produitlib";s:2:"Fr";s:15:"produitprixHT";s:1:"1";}"
 

Il n'y a que quand je me ce foutu apostrophe que ca plante...

 


Message édité par Agmoh le 03-12-2006 à 12:20:00
n°1485635
Agmoh
¯\_(ツ)_/¯
Posté le 03-12-2006 à 15:47:11  profilanswer
 

ok j'ai compris. je fais un str_replace de mon quote par son code ascii.

n°1996496
schlough
Posté le 27-05-2010 à 16:12:06  profilanswer
 

Bonjour,
 
j'ai le même problème, peut tu me montrer ton code ?

n°1997249
Agmoh
¯\_(ツ)_/¯
Posté le 30-05-2010 à 13:34:16  profilanswer
 

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 ?
 
 

n°1997267
schlough
Posté le 30-05-2010 à 14:43:08  profilanswer
 

eh bien exactement comme toi a priori ma variable se désérialise bien sauf quand elle contient une apostrophe

mood
Publicité
Posté le 30-05-2010 à 14:43:08  profilanswer
 

n°1999039
grosbin
OR die;
Posté le 04-06-2010 à 10:27:53  profilanswer
 

addslashes sur toute tes valeurs des tableau avant de serializer
array_map($ârray2serialize,addslashes);
//puis inversement lors de la récupération


---------------
Photos Panoramiques Montagnes Haute Savoie

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème serialize...

 

Sujets relatifs
Problème de design avec IEProblème actionscript: temporisation entre deux instructions
gros problème de décalage/alignement avec IE [résolu, nouveau prob...]Probleme de rollover sous Netscape et Opera
probleme avec sqlplus[c++] Hook "anti-rebond" et problème touches ALT
ou est le probleme ? idcompilerdefines.incProbleme d'affichage
Problème de focus sur element <embed/>Probleme de disposition de boutons et d'encadré
Plus de sujets relatifs à : Problème serialize...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR