PHP include form, données $_POST invisibles

Résolu/Fermé
babafall - 4 août 2012 à 10:33
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 4 août 2012 à 17:28
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

maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
4 août 2012 à 15:07
c'est enctype='text/plain' que tu dois supprimer
4
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 15:36
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
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
4 août 2012 à 17:28
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
0
Utilisateur anonyme
4 août 2012 à 11:55
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 ?
0
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 13:31
Bonjour,

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

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

$out_message ='';

print_r ($_POST);
0
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 13:52
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
À 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 ?
0
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 15:09
<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>
0
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 15:11
$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.";
0
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 15:14
Merci pour <br/>.
Tu peux coller le code source dans un editeur text. Il s'agit des pages : inscription.php et de insert.php
0
babafall Messages postés 7 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 4 août 2012
4 août 2012 à 15:25
Merci Maka54, print_r affiche $_POST maintenant et la redirection est assurée
0