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 :

Utilisation de serialize/unserialize et POST


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 63
    Points
    63
    Par défaut Utilisation de serialize/unserialize et POST
    Salut !

    J'ai vu que ce type de problème avait déjà était traité dans quelques post, malheureusement l'utilisation du couple serialize ( sur la page d'un formulaire) et d'unserialize ( sur la page de réponse) ne me donne rien.

    Formulaire :
    Les print_r fonctionnement correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    print_r($nonserie);
    $serie = serialize($nonserie);
    print_r(unserialize($serie));
    ?>
    <input name="serie" type="hidden" value="<?php echo $serie; ?>" >
    Fichier Réponse :
    Le print_r n'affiche rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r(unserialize($_POST["serie"]));

  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 777
    Points
    17 777
    Par défaut
    print_r n'est pas le plus approprié (var_dump)

    Si magic_quotes_gpc est à On alors il faut stripslashes les données avant de désérialiser les données dans le script de réception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r(unserialize(stripslashes($_POST['serie'])));
    Les quotes, notamment, faisant partie du format de sérialisation étant alors échappées.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    Merci pour la réponse, ça fonctionne :

    J'avais pendant un moment cette chaine :
    a:1:{i:1;s:4:\"1003\";}
    sans le 1003 qui correspond à un exemple de valeur que je désire récupérer.

    Maintenant c'est ok, probablement grâce aux stripslashes que j'ai rajouté car les magic_quote étaient bien activés ( tu l'avais deviné!).

    J'ai donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $serie = $_POST["serie"];
    var_dump($serie); // retourne string(23) "a:1:{i:1;s:4:\"1003\";}"
     
    $deserie = unserialize(stripslashes(($serie)));
    var_dump($deserie); // retourne array(1) { [1]=>  string(4) "1003" } 
    foreach ( $deserie as $clef)
    echo $clef; // affiche 1003
    Qui m'affiche donc 1003 dans l'exemple ci-dessus.

    Merci !

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Est ce possible de reouvrir ce sujet, parce que j'arrive pas a trouver une solution a le mien:

    Je voudrais juste comprendre les etapes et les appliquer sur le mien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    // je recupere les donnees de la BD:
    extract($rows)
     
    // je serialize la donnee dont je veux recupere sur l'autre page (counter)
    $counter = serialize($counter);
    var_dump($counter); // affiche quelque chose comme: string(8) "s:1:"1";" string(8) "s:1:"1";" string(8) "s:1:"0";" string(8) "s:1:"0";"
     
    // ce que je veux passer sur l'autre page est: 1, 1, 0.. la 3eme position apres s
     
    echo $counter; // j'affiche mes donnees sur un tableau
     
    // ici je construit un formulaire:
    echo '<form name="form1" method="post" action="listen.php">
    <input name="counter" type="hidden" value="'.$counter.'" >
      <input type="submit" name="Submit" value="go">
    </form>';
     
    // voila je passe a la page2, listen.php
     
    $counter = $_POST["counter"];
    var_dump($counter); // NE retourne rien

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2008, 17h32
  2. Réponses: 2
    Dernier message: 29/09/2008, 10h10
  3. serialize / unserialize
    Par vanhel dans le forum Langage
    Réponses: 3
    Dernier message: 14/05/2008, 08h33
  4. Utilisation de variables dans un post de forum
    Par ksper92 dans le forum Langage
    Réponses: 5
    Dernier message: 23/11/2007, 11h13
  5. [Cookies] Pb avec Serialize / Unserialize
    Par Romalafrite dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2006, 12h12

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