Problème formulaire
Résolu
turkish78
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
DelNC Messages postés 2234 Date d'inscription Statut Membre Dernière intervention -
DelNC Messages postés 2234 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en PHP et j'ai toujours un message d'erreur quand mes checkbox ne sont pas cochés : undefined variable, et lorsque tout est coché, il n' y a pas de problème et j'ai toute les valeurs en base de données.
Merci d'avance de votre aide
Voici mon code
et voici les messages d'erreurs

Je débute en PHP et j'ai toujours un message d'erreur quand mes checkbox ne sont pas cochés : undefined variable, et lorsque tout est coché, il n' y a pas de problème et j'ai toute les valeurs en base de données.
Merci d'avance de votre aide
Voici mon code
<?php require_once("inc/init.inc.php"); var_dump($_FILES); echo '</br>'; echo '</br>'; echo '</br>'; var_dump($_POST); echo '</br>'; extract($_POST); if(!empty($_POST['submit'])){ $mysqli->query("INSERT INTO competences_et_materiel(theorique_ulm, S1, S2, S3, S4, engagement_S3, engagement_S1, engagement_DGAC, chassis, type_gopro, type_nex, gh4_5d_equiv) VALUES('$theorique_ulm', '$S1', '$S2', '$S3', '$S4', '$engagement_S3', '$engagement_S1', '$engagement_DGAC', '$chassis', '$type_gopro', '$type_nex', '$gh4_5d_equiv')"); } /*-------------------------------------- copie théorique --------------------------------------------*/ if(!empty($_FILES)){ $file_name = $_FILES['copie_theorique']['name']; $file_extension = strrchr($file_name, "."); $file_tmp_name = $_FILES['copie_theorique']['tmp_name']; $file_dest = 'documents/copie_theorique/'.$file_name; $extensions_autorisees = array('.pdf', '.PDF'); if(in_array($file_extension, $extensions_autorisees)){ if(move_uploaded_file($file_tmp_name, $file_dest)){ $fichier_bdd = RACINE_SITE."documents/copie_theorique/$file_name"; $mysqli->query("INSERT INTO competences_docs(copie_theorique) VALUES('$fichier_bdd')"); echo 'Fichier envoyé avec succès'; }else{ echo "Une erreur est survenue lors de l'envoi du fichier"; } }else{ echo 'Seul les fichiers PDF sont autorisés'; } echo '</br>'; /*----------------------------------- copie certificat MAP --------------------------------------------*/ $file_name = $_FILES['copie_certificat_map']['name']; $file_extension = strrchr($file_name, "."); $file_tmp_name = $_FILES['copie_certificat_map']['tmp_name']; $file_dest = 'documents/copie_certificat_map/'.$file_name; $extensions_autorisees = array('.pdf', '.PDF'); if(in_array($file_extension, $extensions_autorisees)){ if(move_uploaded_file($file_tmp_name, $file_dest)){ $fichier_bdd = RACINE_SITE."documents/copie_certificat_map/$file_name"; $mysqli->query("INSERT INTO competences_docs(copie_certificat_map) VALUES('$fichier_bdd')"); echo 'Fichier envoyé avec succès'; }else{ echo "Une erreur est survenue lors de l'envoi du fichier"; } }else{ echo 'Seul les fichiers PDF sont autorisés'; } echo '</br>'; /*-------------------------------- copie certificat type --------------------------------------------*/ $file_name = $_FILES['certificat_type']['name']; $file_extension = strrchr($file_name, "."); $file_tmp_name = $_FILES['certificat_type']['tmp_name']; $file_dest = 'documents/certificat_type/'.$file_name; $extensions_autorisees = array('.pdf', '.PDF'); if(in_array($file_extension, $extensions_autorisees)){ if(move_uploaded_file($file_tmp_name, $file_dest)){ $fichier_bdd = RACINE_SITE."documents/certificat_type/$file_name"; $mysqli->query("INSERT INTO competences_docs(certificat_type) VALUES('$fichier_bdd')"); echo 'Fichier envoyé avec succès'; }else{ echo "Une erreur est survenue lors de l'envoi du fichier"; } }else{ echo 'Seul les fichiers PDF sont autorisés'; } echo '</br>'; /*-------------------------------- copie charte engagement --------------------------------------------*/ $file_name = $_FILES['charte_engagement']['name']; $file_extension = strrchr($file_name, "."); $file_tmp_name = $_FILES['charte_engagement']['tmp_name']; $file_dest = 'documents/charte_engagement/'.$file_name; $extensions_autorisees = array('.pdf', '.PDF'); if(in_array($file_extension, $extensions_autorisees)){ if(move_uploaded_file($file_tmp_name, $file_dest)){ $fichier_bdd = RACINE_SITE."documents/charte_engagement/$file_name"; $mysqli->query("INSERT INTO competences_docs(charte_engagement) VALUES('$fichier_bdd')"); echo 'Fichier envoyé avec succès'; }else{ echo "Une erreur est survenue lors de l'envoi du fichier"; } }else{ echo 'Seul les fichiers PDF sont autorisés'; } } ?> <!doctype [/contents/498-html-langage html]> <head> <meta charset="utf-8"> <title>Info et notes</title> <link rel="stylesheet" href="style.css"> <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> </head> <body> <div id="contenu"> <form method="post" class="form-horizontal well" enctype="multipart/form-data" action=""> <h3>Infos et note</h3> <label for="theorique_ulm">Théorique ULM :</label> <input type="radio" name="theorique_ulm" value="pilote" <?php if(isset($_POST['theorique_ulm']) && $_POST['theorique_ulm'] =="pilote") {echo 'checked';} elseif(!isset($_POST['theorique_ulm'])) {echo 'checked';} ?> /> <label>Théorique pilote</label> <input type="radio" name="theorique_ulm" value="instructeur" <?php if(isset($_POST['theorique_ulm']) && $_POST['theorique_ulm'] == "instructeur") {echo 'checked';}?> /> <label>Théorique instructeur</label> </br> </br> <label for="homologation">Homologation :</label> <input type="checkbox" name="S1" value="ok" /> S1 <input type="checkbox" name="S2" value="ok" /> S2 <input type="checkbox" name="S3" value="ok" /> S3 <input type="checkbox" name="S4" value="ok" /> S4 </br> </br> <input type="checkbox" name="engagement_S3" value="ok" /> <label>Engagement "demande systématique d'autorisation en S3"</label> </br> </br> <input type="checkbox" name="engagement_S1" value="ok" /> <label>Engagement "déclaration de vol en S1"</label> </br> </br> <input type="checkbox" name="engagement_DGAC" value="ok" /> <label>Engagement "utilisation exclusive d'aéronef homologué DGAC"</label> </br> </br> <label for="chassis">Chassis :</label> <input class="" type="text" id="chassis" name="chassis" value="<?php if(isset($chassis)){echo $chassis;} ?>" /> </br> </br> <label for="commande">Commande :</label> <input type="radio" name="commande" value="unique" <?php if(isset($_POST['commande']) && $_POST['commande'] =="unique") {echo 'checked';} elseif(!isset($_POST['commande'])) {echo 'checked';} ?> /> <label>Unique pilote cadreur</label> <input type="radio" name="commande" value="double" <?php if(isset($_POST['commande']) && $_POST['commande'] == "double") {echo 'checked';}?> /> <label>Double pilote cadreur</label> </br> </br> <label for="capteur">Capteur :</label> <input type="checkbox" id="type_gopro" name="type_gopro" value="ok" /> <label>Type GoPro</label> <input type="checkbox" id="type_nex" name="type_nex" value="ok" /> <label>Type Nex</label> <input type="checkbox" id="gh4_5d_equiv" name="gh4_5d_equiv" value="ok" /> <label>GH4 - 5D - Equiv</label> </br> </br> <!-------------------------------------- copie théorique --------------------------------------------> <div class="form-group"> <label for="copie_t" class="col-lg-2 control-label">Joindre une copie du théorique</label> <div class="col-lg-10"> <input type="file" class="form-control" name="copie_theorique"> <span><?php ?></span> </div> </div> <!-------------------------- copie certificat de dépot MAP -------------------------------------> <div class="form-group"> <label for="copie_certificat_map" class="col-lg-2 control-label">Joindre une copie du certificat de dépot de MAP</label> <div class="col-lg-10"> <input type="file" class="form-control" id="copie_certificat_map" name="copie_certificat_map" value=""> </div> </div> <!-------------------------- copie certificat de type -------------------------------------> <div class="form-group"> <label for="certificat_type" class="col-lg-2 control-label">Joindre une copie du certificat de type</label> <div class="col-lg-10"> <input type="file" class="form-control" id="certificat_type" name="certificat_type" value=""> </div> </div> <!-------------------------- charte d'engagement signée -------------------------------------> <div class="form-group"> <label for="charte_engagement" class="col-lg-2 control-label">Joindre la charte d'engagement signée</label> <div class="col-lg-10"> <input type="file" class="form-control" id="charte_engagement" name="charte_engagement" value=""> </div> </div> <!---------------------------------------------------------------------------------------------> <div class="form-group"> <div class="col-lg-10 col-lg-offset-2"> <button type="submit" value="submit" name="submit" class="btn btn-primary">Sauvegarder</button> </div> </div> </form> </body> </html>
et voici les messages d'erreurs

2 réponses
Salut,
Il s'agit du comportement normal des checkbox : la paramètre get ou post de la checkbox n'est envoyé que si elle est cochée. Il faut donc vérifier que le paramètre existe avant de l'utiliser :
Bonne journée
Il s'agit du comportement normal des checkbox : la paramètre get ou post de la checkbox n'est envoyé que si elle est cochée. Il faut donc vérifier que le paramètre existe avant de l'utiliser :
$S1 = !empty($_POST['S1']) ? $_POST['S1'] : '';
Bonne journée
Bonjour,
pour les checkbox, il faut faire attention à donner à chaque case un id différent, sinon, c'est la première valeur qui sera prise par défaut.
Pour récupérer les données, il faut toutes les mettre dans la page où elles ont été envoyées
pour les checkbox, il faut faire attention à donner à chaque case un id différent, sinon, c'est la première valeur qui sera prise par défaut.
<table border=2>
<tr>
<td >
<input type="checkbox" name="checkbox1" value="Baseball" />
</td>
<td>   Baseball
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkbox2" value="Basketball" />
</td>
<td>
  Basketball
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkbox3" value="Beachvolley" />
</td>
<td>
  Beachvolley
</td>
</tr>
</tr> </h2>
</table>
Pour récupérer les données, il faut toutes les mettre dans la page où elles ont été envoyées
<?php
if (isset($_REQUEST["checkbox1"])) {
$checkbox1 = trim($_REQUEST["checkbox1"]);
}//end if
else {$checkbox1 = "";
}//end else
if (isset($_REQUEST["checkbox2"])) {
$checkbox2 = trim($_REQUEST["checkbox2"]);
}//end if
else {$checkbox2 = "";
}//end else
if (isset($_REQUEST["checkbox3"])) {
$checkbox3 = trim($_REQUEST["checkbox3"]);
}//end if
else {$checkbox3 = "";
}//end else
?>