PHP include form, données $_POST invisibles

Résolu
Bonjour,

Je suis bloqué dans mon code PHP. En fait j'ai une page main où j'inclue d'autres contenus par include selon l'action sur la page main ou sur les pages incluses.

-----code caissier.php---
...
<div id="sousmenu1" style="display:none">
<div class="sousmenu">
<a href="caissier.php?onglet=1&action=1">Inscire</a>
</div>
<div class="sousmenu">
<a href="caissier.php?onglet=1&action=2">Reinscrire</a>
</div>
</div>
...
<?php
if(!isset($_GET['onglet']) or $_GET['onglet'] == 2)
include_once("views/paiement.php");
else
if($_GET['onglet'] == 1){
switch($_GET['action']){
case 1 : include_once("views/inscription.php"); break;
case 2 : include_once("views/reinscription.php"); break;

}

}

?>
...
-----fin code main -----

En cliquant sur le premier lien, je parviens à inclure la page inscription.php qui est un formulaire.
-----inscription.php------
<form method='post' action='controllers/insert.php' enctype='text/plain' class='form_inscription'>
<?php if(!empty($out_message)) echo"<p> $out_message </p>"; ?>
<input type='hidden' name='page_inscription' value='../caissier.php?onglet=1&action=1'/>
<label>Niveau : </label>
<select name='niveau_eleve'>
<?php
$sortie = printClasse();
echo $sortie;
?>
</select>
</br>
<fieldset class ='fieldset_eleve'>
<legend>Filiation élève</legend>
<label id='prenom' class='label'>Prénom : </label>
<input type='text' name='prenom' id='prenom' class='input_text'/>
...

<input type='submit' value='' class='bouton_save'/>
</form>

------fin code inscription.php------

Mon problème est que la page qui doit recevoir les données envoyées par post (insert.php) via ce formulaire ne reçoit pas de variables $_POST.

S'il vous plait, quelqu'un a t-il rencontré un problème pareil.
Merci d'avance

9 réponses

  1. c'est enctype='text/plain' que tu dois supprimer
    1. Merci encore. le problème c t le enctype que j'avais mis. Je l'ai enlevé et ça a marché. Ensuite j'ai mis un autre enctype : enctype='multipart/form-data' et ça marche encore.
      En résumé, enctype='text/plain' ne va pas avec la méthode post?
      Merci encore
    2. avec enctype='text/plain'

      tu envoies tes données en text brut,
      exemple d'utilisation : un formulaire de contact à envoyer par mail

      avec enctype='multipart/form-data'

      tu peux uploader des fichiers avec le champ file

      si tu n'as besoin d'aucun des 2, tu n'as pas besoin de mettre l'attribut enctype
  2. Bonjour

    Mon problème est que la page qui doit recevoir les données envoyées par post (insert.php) via ce formulaire ne reçoit pas de variables $_POST.

    Comment l'as-tu vérifié ? À première vue, ton formulaire est correct. As-tu fait un print_r($_POST); au tout début de insert.php ?
    1. Bonjour,

      Voici le code qui m'a permis de vérifier:

      ---- insert.php-----

      $out_message ='';

      print_r ($_POST);
      1. Voilà tout ce que j'ai mis dans insert.php

        <?php
        $out_message ='';
        print_r ($_POST);
        if(isset($_POST['inscription'])){
        $out_message .='Enregistrement reussi.';
        header('Location: ../caissier.php?onglet=1&action=1');
        }
        echo "La variable POST nerepond pas.";

        ?>

        le résultat que j'obtiens:

        Array ( ) La variable POST nerepond pas.
        1. À deuxième vue, c'est encore correct (sauf </br> au lieu de <br /> mais bon...).
          Comme la vérification semble correcte aussi, peux-tu faire afficher le formulaire et donner le code source de la page générée dans un fichier sur cjoint.com ou autre ?
          1. <div class='menu_text'>Formulaire Inscription</div>
            <form method='post' action='controllers/insert.php' enctype='text/plain' class='form_inscription'>
            <?php if(!empty($out_message)) echo"<p> $out_message </p>"; ?>
            <input type='hidden' name='page_inscription' value='../caissier.php?onglet=1&action=1'/>
            <label>Niveau : </label>
            <select name='niveau_eleve'>
            <?php
            $sortie = printClasse();
            echo $sortie;
            ?>
            </select>
            <br/>
            <fieldset class ='fieldset_eleve'>
            <legend>Filiation élève</legend>
            <label id='prenom' class='label'>Prénom : </label>
            <input type='text' name='prenom' id='prenom' class='input_text'/>
            <br/>
            <label id='nom' class='label'>Nom : </label>
            <input type='text' name='nom' id='nom' class='input_text'/>
            <br/>
            <label id='date_naiss'>Date de naiss. : </label>
            <input type='date' id='date_naiss' name='date_naiss' class='input_text'/>
            <br/>
            <label id='lieu_naiss'>Lieu de naiss. : </label>
            <input type='text' id='lieu_naiss' name='lieu_naiss' class='input_text'/>
            <br/>
            <label id='cas_social' class='label'>Cas social : </label>
            <input type='checkbox' id='cas_social' name='cas_social' onclick='afficheSuite(this)'/>
            <br/>
            <div id='cas_social_checked' style='display:none'>
            <label id='mensualite' class='label'>Mensualité : </label>
            <input type='number' name='mensualite' id='mensualite' class='input_text'/>
            <br/>
            </div>
            </fieldset>

            <fieldset class ='fieldset_tuteur'>
            <legend>Filiation tuteur</legend>
            <label id='prenom_tuteur' class='label'>Prénom : </label>
            <input type='text' name='prenom_tuteur' id='prenom_tuteur' class='input_text'/>
            <br/>
            <label id='nom_tuteur' class='label'>Nom : </label>
            <input type='text' name='nom_tuteur' id='nom_tuteur' class='input_text'>
            <br/>
            <label id='tel_mobile' class='label'>Num. mobile : <img src=></label>
            <input type='tel' name='tel_mobile' id='tel_mobile' placeholder='775158718' required class='input_text'>
            <br/>
            </fieldset>
            <br/>
            <input type='submit' value='' class='bouton_save'/>
            <br/>
            </form>
            1. $out_message ='';
              print_r ($_POST);
              if(isset($_POST['page_inscription'])){
              $out_message .='Enregistrement reussi.';
              header('Location: ../caissier.php?onglet=1&action=1');
              }
              echo " La variable POST ne repond pas.";
              1. Merci pour <br/>.
                Tu peux coller le code source dans un editeur text. Il s'agit des pages : inscription.php et de insert.php
                1. Merci Maka54, print_r affiche $_POST maintenant et la redirection est assurée