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 :

$_POST ne récupère rien [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut $_POST ne récupère rien
    Bonsoir, voilà j'ai un petit soucis. Je dois créer un petit logiciel. Cependant j'ai un soucis avec mon $_POST.

    Je vous explique grossomodo comment je veux que ça fonctionne.

    J'ai une fonction "inscrire" qui est diviser sur 3 pages qui seront les unes à la suite (chaque page est composé d'un formulaire à gauche et un récapitulatif des infos à droite).
    Sur la 1ere page aucun problème, cependant, arriver sur la 2eme page, j'aimerais afficher donc à droite les infos récupérer de la page 1 afin que l'utilisateur voit ce qu'il à saisis précédemment ... Cependant mes champs de droites reste vide, donc le $_POST ne fonctionne pas .. Je vous laisse le code :

    vueRecapitulatifInfoFamille.php
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php	
    if ((isset($_POST['nomB']))&&(isset($_POST['prenomB']))&&(isset($_POST['prenomB']))&&(isset($_POST['telF']))&&(isset($_POST['telP']))&&(isset($_POST['nbrP']))&&(isset($_POST['OrgDem']))&&(isset($_POST['SitDem']))){
     
    	$_SESSION['nomB']=$_POST['nomB'];
    	$_SESSION['prenomB']=$_POST['prenomB'];
    	$_SESSION['adresse']=$_POST['adresse'];
    	$_SESSION['telF']=$_POST['telF'];
    	$_SESSION['telP']=$_POST['telP'];
    	$_SESSION['nbrPersonne']=$_POST['nbrP'];
    	$_SESSION['OrgDem']=$_POST['OrgDem'];
    	$_SESSION['SitDem']=$_POST['SitDem'];
    }
     
    	$nom="";
    	$prenom="";
    	$adresse="";
    	$telF="";
    	$telP="";
    	$nbrPersonne = "";
    	$OrgDem="";
    	$SitDem="";
     
    if ((isset($_SESSION['nomB']))&&(isset($_SESSION['prenomB']))&&(isset($_SESSION['adresse']))&&(isset($_SESSION['telF']))&&(isset($_SESSION['telP']))&&(isset($_SESSION['nbrP']))&&(isset($_SESSION['OrgDem']))&&(isset($_SESSION['SitDem']))){
     
    	$nom=$_SESSION['nomB'];
    	$prenom=$_SESSION['prenomB'];
    	$adresse=$_SESSION['adresse'];
    	$telF=$_SESSION['telF'];
    	$telP=$_SESSION['telP'];
    	$nbrPersonne = $_SESSION['nbrP'];
    	$OrgDem=$_SESSION['OrgDem'];
    	$SitDem=$_SESSION['SitDem'];
    }
     
    echo "Nom du bénéficiaire : $nom <br>";
    echo "Prenom du bénéficiaire : $prenom<br>";
    echo "Adresse : $adresse<br>";
    echo "Téléphone fixe : $telF<br>";
    echo "Téléphone portable : $telP<br>";
     
    for($i=0;$i<$nbrPersonne;$i++){
    $annee="";
    $annee=$_SESSION['annee'.$i];
    echo "Année de naissance de la personne$i : $annee, statut dans la famille : typeFamille$i<br>";
    }
     
    echo "Organisme demandeur : $OrgDem<br>";
    echo "Situation du demandeur : $SitDem<br>" ;
     
    ?>
    vueInfoFamille1.php
    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
    <form method="POST" action="../modelesVues/InfoFamille2.php" >
    <input type="radio" name="sexe" value="Mme" />Mme <input type="radio" name="sexe" value="Mlle" />Mlle <input type="radio" name="sexe" value="M" />M 
    <br>
    Nom du bénéficiaire :<input type="text" name="nomB">
    <br>
    Prénom du bénéficiare:<input type="text" name="prenomB">
    <br>
    Adresse: 
    <br><textarea name="adresse" cols="50" rows="2" ></textarea>
    <br>
    Téléphone fixe :<input type="text" name="telF">
    <br>
    Téléphone portable :<input type="text" name="telP">
    <br>
    Nombre de personnes dans la famille : <input type="text" name="nbrP" >
    <br>
    <input type="submit" value="Passer à l'étape 2/4"/>
    </form>
    page principale.php
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTDxhtml1-transitional/dtd">
    <html>
    <head>
    <title>
    Inscription d'une nouvelle famille
    </title>
    </head>
    <meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1" />
    <link type="text/css" rel="stylesheet" href="../feuillesDeStyle/InfoFamille1.css" />
    <body background="../images/arrierePlan.jpg">
     
    <div id="header">
    <?php include "../vuesElementaires/vueInfoFamille1.php" ; ?>
    </div>
     
    <div id="zoneDroite">
    <?php include "../vuesElementaires/vueRecapitulatifInfoFamille.php" ; ?>
    </div>
     
    </body>
    </html>
    Voilà, pour le 2eme code, j'ai initialiser pas mal de variables à ="" pour éviter d'avoir les notices ..

    Si quelqu'un a une idée, ou si vous voulez d'autres infos ..

    merci

    edit : je précise que le session_start() est présent sur le code de la page d'accueil

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    edit : je précise que le session_start() est présent sur le code de la page d'accueil
    il faut le mettre sur toutes les pages qui utilisent des sessions.

    Si cela ne fonctionne toujours pas, ca serait bien de nous mettre les fichiers dans l'ordre, ca n'a pas l'air d'être le cas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    1) Une raison fort probable: tes tests ne sont pas opérationnels, car il y a une erreur récurrente dans tes 2 lignes de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((isset($_POST['nomB']))&(isset($_POST['prenomB']))&(isset($_POST['prenomB']))&(isset($_POST['telF']))&(isset($_POST['telP']))&(isset($_POST['nbrP']))&(isset($_POST['OrgDem']))&(isset($_POST['SitDem']))){
    => il faut doubler l'opérateur &
    => Des parenthèses inutiles: tu n'es pas obligé d'encadrer les (isset)

    2) Pour éviter les "notices", tu peux initialiser "error_reporting" à NULL si tu as accès au php.ini. Mais à faire en prod uniquement car c'est utile pour le développement en mode debug. Cela dit, je ne vois pas l'intérêt d'utiliser les variables de session pour les rebalancer dans des variables locales... Perte de temps, source et risque d'erreurs...

    3) Une autre boulette dans ta boucle FOR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $annee=$_SESSION['annee$i'];
    remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $annee=$_SESSION['annee' . $i ];
    4) En html, il faut fermer tes balises <input>:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="telF">
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="telF"/>
    5) Une petite dernière pour la route :
    La balise de saut de ligne est <br/>, pas <br>.

    6) Un commentaire important pour la sécurité de ton code :
    Il manque du code, donc tu l'as peut être fait dans ce code manquant, mais j'en doute fort: n'oublies pas de contrôler intégralement tes champs de saisie. Les tutos sont légion, inspires t'en.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ... & (isset($_POST['OrgDem']))&(isset($_POST['SitDem'])
    J'ai beau regarder le code du formulaire, je ne vois aucun de ces 2 éléments : OrgDem et SitDem ?
    S'il n'y sont pas, ça va coincer après.

    Pour vérifier ce que retourne le formulaire, fais un print_r($_POST)

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    <form method="POST" action="../modelesVues/InfoFamille2.php" >
    Or que tu recuperes les variables dans vueRecapitulatifInfo.php.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Il manque le code de la page principal qui est InfoFamille1.php (InfoFamille2.php étant la deuxième page de inscription) :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTDxhtml1-transitional/dtd">
    <html>
    <head>
    <title>
    Inscription d'une nouvelle famille
    </title>
    </head>
    <meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1" />
    <link type="text/css" rel="stylesheet" href="../feuillesDeStyle/InfoFamille1.css" />
    <body >
    <?php
    session_start();
    $_SESSION['etat']='etatInfoFamille1';
    ?>
     
    <div id="zoneBoutons">
    <?php include "../vuesElementaires/vueBoutonsPages.php" ; ?>
    </div>
     
    <div id="zoneTexte">
    <?php include "../vuesElementaires/vueZoneTexte.php" ; ?>
    </div>
     
    <div id="zoneMilieuGauche">
    <form method="POST" action="../modelesVues/InfoFamille2.php" >
    <?php include "../vuesElementaires/vueInfoFamille1.php" ; ?>
    </form>
    </div>
     
    <div id="zoneBasse">
    <?php include "../vuesElementaires/vueRecapitulatifInfoFamille.php" ; ?>
    </div>
     
    </body>
    </html>
    andry.aime > C'est normal, il n'y a pas d'erreurs, on a utiliser la structure comme le MVC mais sans contrôleur .. donc j'ai plusieurs dossiers (vues, modeles, images et feuillesDeStyle), les modele sont les pages principals html qui contiennent les div etc .. les vues sont seulement des parties de code.

    RunCodePhp> Comme je l'ai précisé, la page inscription est en 3 étapes différents, j'ai posté seulement la première ici (vueInfoFamille1.php), comme le principe serait le même pour toutes les pages qui suivent ..

    hornetbzz> Merci j'ai réctifié ces erreurs dans mon code.

    Seulement je n'y arrive toujours pas ... Si vous avez d'autres questions n'hésitez pas.

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

Discussions similaires

  1. [AJAX] Valeur $_POST non récupérée
    Par devphpdid dans le forum AJAX
    Réponses: 4
    Dernier message: 03/05/2014, 09h21
  2. session existe mais ne récupère rien
    Par pitichamo dans le forum Langage
    Réponses: 4
    Dernier message: 13/11/2013, 16h41
  3. [AJAX] AJAX ne récupère rien comme valeur
    Par djeandot dans le forum AJAX
    Réponses: 9
    Dernier message: 26/06/2009, 14h47
  4. $_POST ne récupère pas le choix d'une liste
    Par sativa808 dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2008, 15h57
  5. $_POST & insert = rien !?
    Par ruty dans le forum Langage
    Réponses: 31
    Dernier message: 30/05/2006, 23h57

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