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

  FORUM HardWare.fr
  Programmation
  PHP

  Notice: unserialize(): Error at offset => ' et retour chariot

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Notice: unserialize(): Error at offset => ' et retour chariot

n°1202846
weed
Posté le 19-09-2005 à 22:39:29  profilanswer
 

lorsque j'essaie de déserialiser un array dont une colonne une simple quote ' dans une chaine de caractère, j'ai le droit à un beau :
 
Notice: unserialize(): Error at offset 2396 of 6336 bytes in c:\program files\easyphp1-8\www\importxml.php on line 14
 
j'ai alors avant de sérialiser, remplacer tous les simples quotes ' par un | (  ) comme ca lorsque je désiaralise, je n'ai plus d'erreur. Apres la serailisation, je reremplace les | par des simples quotes ( )
 
 
En résumé :
 

$tab_resultats[$cpt_bien]["descriptif"] = strtr($buffer, "'", "|" );  
<input type='hidden' name='import' value='".serialize($tab_resultats)."'>
je submite mon tableau à double dimension
$data=unserialize($_POST['import']);


 
Maintenant, je viens de m'apercevoir que lorsque mon descriptif contient un retour chariot, j'ai aussi le droit à un erreur offset ?
 
Que puis je faire ?  
 
Y a - il autre chose que ' et le retour chariot qui pose souci ?  
 
J'utilise PHP4 et je ne peux pas upgrader en php5
 
S'il n'y a pas d'autre caracteres qui pose des soucis, je pourrais peut etre faire la meme chose :
remplacer un caractère spécial comme par exemple # et puis apres le reremplacer apres la désérialisation. Quand pensez vous ?  
 
Quel est le code retour charriot ?
strtr($buffer, <br>, "#" ); ou $buffer = strtr($buffer, eval("<br>", "#" ); ne fonctionnent pas


Message édité par weed le 19-09-2005 à 22:43:07
mood
Publicité
Posté le 19-09-2005 à 22:39:29  profilanswer
 

n°1202863
weed
Posté le 19-09-2005 à 23:10:50  profilanswer
 

bon j'ai trouver pour remplacer un retour charriot :

$buffer = strtr($buffer, "\n", "#" );

n°1202963
AlphaZone
Posté le 20-09-2005 à 09:49:57  profilanswer
 

un retour chariot n'est pas "n" mais "\n"

n°1203003
skeye
Posté le 20-09-2005 à 10:18:25  profilanswer
 

Et si tu faisais un urlencode(serialize(machin)), plutôt?


---------------
Can't buy what I want because it's free -
n°1203024
sielfried
Posté le 20-09-2005 à 10:38:55  profilanswer
 

Y'a toujours eu pas mal de problèmes avec serialize... [:figti]
 
AlphaZone : HFR déconne depuis un moment avec ça, il a bien mis \n. Par contre, autant utiliser str_replace là, c'est plus rapide.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1203105
weed
Posté le 20-09-2005 à 11:28:57  profilanswer
 

skeye a écrit :

Et si tu faisais un urlencode(serialize(machin)), plutôt?


et pourquoi utilisé urlencode ?
 

Citation :

urlencode()  est pratique pour transmettre des informations via une URL. C'est aussi un moyen de passer des informations d'une page à l'autre.


cela me suprend que je puisse utiliser urlencode pour passer d'une page à une autre. Je pensais que c'etait seulement si l'on voulais transmettre en url. Je ne sais pas comment cela va reagir avec les retour chariot mais c'est un truc à essayer en effet.
 

sielfried a écrit :

Y'a toujours eu pas mal de problèmes avec serialize... [:figti]
 
AlphaZone : HFR déconne depuis un moment avec ça, il a bien mis \n. Par contre, autant utiliser str_replace là, c'est plus rapide.


 
oui loool trop fort, en effet lorsque l'on edit mon post, on voit bien que j'avais mis \n

n°1203119
skeye
Posté le 20-09-2005 à 11:34:20  profilanswer
 

weed a écrit :

et pourquoi utilisé urlencode ?
 

Citation :

urlencode()  est pratique pour transmettre des informations via une URL. C'est aussi un moyen de passer des informations d'une page à l'autre.


cela me suprend que je puisse utiliser urlencode pour passer d'une page à une autre. Je pensais que c'etait seulement si l'on voulais transmettre en url. Je ne sais pas comment cela va reagir avec les retour chariot mais c'est un truc à essayer en effet.


 
Parce-que

Citation :

urlencode  retourne une chaîne dont les caractères non alpha-numériques (hormis -_.  ) sont remplacés par des séquences commençant par un caractère pourcentage ( %  ), suivi de deux chiffres hexadécimaux.


 
ça t'évitera tous soucis de ce genre normalement...[:skeye]


Message édité par skeye le 20-09-2005 à 11:34:36

---------------
Can't buy what I want because it's free -
n°1203171
weed
Posté le 20-09-2005 à 12:04:05  profilanswer
 

genial en effet. Je ne savais pas qu'il pouvait encodé tout les caratères non hexa.
 
Je connais le celebre espace qui remplacer par un %20 mais le retour chariot, je ne connaissais pas.

n°1971546
clariane
Posté le 06-03-2010 à 00:19:28  profilanswer
 

hi
 
en fait, on peut utiliser urlencode ou base64_encode
(cf bout de code donné ici : http://issues.unserialize.net/wikk [...] titTableau)
 
aussi utile pour recorrigé / "réparer" un serialize mal enregistré en base de données si erreur de quote ou autre..
(evite de s'embeter a lire la matrice, ou a replacer à la main)
=> http://unserialize.net
 
m'en sert souvent... trop fana des serializes pour mettre en vrac en bdd... (evite de recréer des champs toutes les deux secondes)
 
bye !


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

  Notice: unserialize(): Error at offset => ' et retour chariot

 

Sujets relatifs
[Javascript]Comment faire un retour chariot dans une chaîne de tableauInvite de commanre retour
Run-time error '1004' : Application-defined od object-defined errorRetour à la ligne sous IE qui sabote la mise en page.
[C] Provoquez des IO ErrorGestion des fichiers log et retour en arriere
avoir le retour d'un prog à l'écran et dans un fichierProbléme visual C++ library error
[php] question toute simple sur le retour de 'date("d")' 
Plus de sujets relatifs à : Notice: unserialize(): Error at offset => ' et retour chariot


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