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 :

Problème avec unserialize [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut Problème avec unserialize
    Bonjour à tous,

    lors de la publication de mon site, je m'aperçois d'une erreur de script que je n'ai pas en local.

    Je transmets via un formulaire une variable préalablement "serializé". Mon problème est que je n'arrive pas à la "deserializer".

    Voici mon code par lequel je récupère les données de mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    print_r($POST);
    $TableauEffacer = unserialize($POST['variables']);
    print_r($TableauEffacer);
    foreach($TableauEffacer['IdPhoto'] as $check => $valeurCheck)
    {
    //Taitement
    }
    et voici ce que ca m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Array ( [action] => Confirmer [variables] => a:17:{s:8:\"fonction\";s:15:\"AdminEditPhotos\";s:9:\"IdGalerie\";s:1:\"2\";s:18:\"majphoto_legende10\";s:27:\"L\\\\\\ ) 
    Warning:  Invalid argument supplied for foreach() in /fonctions.php on line 878
    Le print_r($TableauEffacer) ne renvoie rien et la ligne 878 correspond à ma boucle foreach qui fait appel à $TableauEffacer['IdPhoto']

    Mon code fonctionne très bien en local. Le phpinfo() de mon hébergeur
    http://php5info-2.celeonet.fr/

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    La fonctionnalité magic_quotes_gpc est active sur ce serveur, or ce n'est pas géré à la désérialisation. Les backslashs ainsi ajoutés conduisent donc à la non reconnaissance du format.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (get_magic_quotes_gpc()) {
        $TableauEffacer = unserialize(stripslashes($_POST['variables']));
    } else {
        $TableauEffacer = unserialize($_POST['variables']);
    }
    Au passage, c'est $_POST et non $POST.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    Salut julp,

    merci pour ta réponse, l'erreur venait bien de la

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec unserialize et serialize
    Par Mo_Poly dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2009, 15h42
  2. [POO] probléme avec "unserialize"
    Par dragonfly dans le forum Langage
    Réponses: 3
    Dernier message: 31/10/2007, 17h22
  3. Réponses: 7
    Dernier message: 09/10/2007, 16h47
  4. [Tableaux] Problème avec unserialize
    Par Christophe Charron dans le forum Langage
    Réponses: 1
    Dernier message: 10/04/2007, 14h27
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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