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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    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 chevronné
    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
    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.
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  3. #3
    Membre expérimenté 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
    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