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 :

Transmettre tableau php via post


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Points : 65
    Points
    65
    Par défaut Transmettre tableau php via post
    Salut à tous,

    Je souhaite passer un tableau PHP dans une balise <input type="hidden" /> et récupérer ce tableau dans une autre page PHP, par méthode post :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="tab" value="<?= htmlspecialchars(serialize($mon_tab)); ?>" />

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $new_tab = unserialize($_POST['tab']);

    J'ai essayé toute les fonctions que je connaissait, addslashes(), stripslashes(), etc. Rien à faire, impossible de récupérer un tableau. Tout ce que j'ai c'est un E_NOTICE, et ma variable $new_tab un booléen qui vaut false.

    Pourtant, quand je passe ma balise html en texte (pour vérifier la sérialisation), tout semble correcte . Donc je pense que le problème vient de la dé-sérialisation.

    Quelqu'un peut m'aider ?

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Tu peux envoyer ton tableau directement en "html".

    Par exemple, pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array('pomme', 'peche', 'poire');
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="hidden" name="tab[]" value="pomme" />
    <input type="hidden" name="tab[]" value="peche" />
    <input type="hidden" name="tab[]" value="poire" />
    Ou bien pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array('nom' => 'dupond', 'prenom' => 'jean');
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="tab[nom]" value="dupond" />
    <input type="hidden" name="tab[prenom]" value="jean" />
    L'avantage c'est que dans ta globale $_POST, tu récupèreras directement le tableau tel quel.

    Si tu souhaites continuer à utiliser la serialization, si au retour le boolean vaut false c'est que la syntaxe du tableau transmis n'est pas la même. Regarde ce que vaut $_POST['tab'], et compare le à la version sérializée que tu avais sur la page précédente pour voir ce qui est différent.

  3. #3
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    @genova +1

    @Bugger24 : Tu peux utiliser les sessions, elles sont plus sûres et ne coûteront pas des efforts de filtrage et de validation

    dans la page où il y a le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['mon_tab'] = $mon_tab;
    et tu le récupères dans les autres pages en accédant ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['mon_tab'] //Traitement ...

Discussions similaires

  1. Passer tableau JS via requête post
    Par yann0807 dans le forum jQuery
    Réponses: 1
    Dernier message: 13/05/2009, 13h12
  2. Réponses: 4
    Dernier message: 05/11/2008, 17h32
  3. transmettre tableau php get
    Par calitom dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2008, 13h47
  4. [Tableaux] transmettre tableau via un formulaire
    Par calitom dans le forum Langage
    Réponses: 5
    Dernier message: 05/12/2006, 19h30
  5. Réponses: 2
    Dernier message: 02/06/2006, 09h04

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