IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Unserialize error at offset


Sujet :

Langage PHP

  1. #1
    Membre actif
    Avatar de dam_moreyllo
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 251
    Points : 227
    Points
    227
    Par défaut Unserialize error at offset
    Bonjour !

    J'enregistre un tableau serialisé (avec serialize donc) dans une table pour, par la suite, le déserialiser. Seulement je rencontre des erreurs du type :

    unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 0 of 4 bytes
    En fait, quand je fais juste un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rqt = "INSERT INTO ... ('".serialize($tab)."')";
    Je n'ai pas d'erreur et le unserialize marche bien. En revanche si il y a un ' dans une des valeurs du tableau, évidemment la requête ne marche plus. C'est pourquoi il faut rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rqt = "INSERT INTO ... ('".mysql_real_escape_string(serialize($tab))."')";
    Là la requête est bien exécutée, mais maintenant, quand je fais unserialize, j'ai l'erreur mentionnée plus haut.

    J'ai essayé d'encoder/décoder de différente manière (urlencode, rawurlencode, utf8_encode et même base64_encode), ou aussi de remplacer mysql_real_escape_string par addslashes, mais rien n'y change...

    Comment faire pour résoudre ce problème ?

    Merci d'avance !

    Edit :

    Je viens même de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rqt = "INSERT INTO ... ('".str_replace("'", "", serialize($tab))."')";
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach ($tab as $c => $v) {
       $tab[$c] = str_replace("'", "", $v);
    }
    $rqt = "INSERT INTO ... ('".str_replace("'", "", serialize($tab))."')";
    et j'ai toujours l'erreur...

  2. #2
    Membre actif
    Avatar de dam_moreyllo
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 251
    Points : 227
    Points
    227
    Par défaut
    Ok bon j'ai trouvé en fait... erreur de ma part

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/06/2010, 18h51
  2. Error Undefined offset
    Par lordlifen dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2009, 16h43
  3. [Forum] Fatal error: Cannot use string offset as an array
    Par Yuki_Hime dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 31/07/2009, 23h55
  4. Fatal error: Cannot use string offset as an array
    Par tremeur53 dans le forum Langage
    Réponses: 8
    Dernier message: 31/10/2008, 09h44
  5. Réponses: 4
    Dernier message: 14/02/2008, 20h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo