Je veux empêcher mon formulaire d'envoyer un formulaire vide
Résolu
hononul
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
hononul Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
hononul Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je vien de débuter en PHP
jai bien relier ma page à ma base avec PDO
j'ai créer un formulaire qui evoie mes données entrées dans le formulaire à ma base de données.
voici mon code
je veux empêcher mon formulaire d'envoyer des champs vide dans ma base de données, comment je dois m'y prendre? aidez moi svp
je vien de débuter en PHP
jai bien relier ma page à ma base avec PDO
j'ai créer un formulaire qui evoie mes données entrées dans le formulaire à ma base de données.
voici mon code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8"/> <html> <head> <title> Formulaire </title> </head> <body > <form method="post" action="index.php"> <table> <tr> <td><label name="nom">nom: </label></td> <td><input type="text" name="nom" id="nom"/> </td> </tr> <tr> <td><label name="prenom">prenom: </label></td> <td><input type="text" name="prenom"/></td> </tr> <tr> <td><label name="age">age:</label></td> <td><input type="text" name="age"></td> </tr> <tr> <td>date debut carriere </td> <td> <select name="jour"> <option value="00">jour</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> </td> <td> <select name="mois"> <option value="00">mois</option> <option value="01">janvier</option> <option value="02">fevrier</option> <option value="03">mars</option> <option value="04">avril</option> <option value="05">mai</option> <option value="06">juin</option> <option value="07">juillet</option> <option value="08">aout</option> <option value="09">septembre</option> <option value="10">octobre</option> <option value="11">novembre</option> <option value="12">decembre</option> </select> </td> <td> <select name="annee"> <option value="0000">annee</option> <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2001">2001</option> </select> </td> </tr> <tr> <td><label name="courtebiographie">biographie: </label></td> <td><input type="text" name="courtebiographie"/></td> </tr> </br> <tr> <td> <input name="valider" type="submit" value="Enregistrer"/> <input type="reset" name="annuler" value="Annuler" /> </td> </tr> </table> <!-- <a href="listejoueurs.php" rel="nofollow noopener noreferrer" target="_blank">afficher la liste des joueurs</a> </br> --> <!--<a href="moyenne.php" rel="nofollow noopener noreferrer" target="_blank">moyenne des ages</a> --> </form> <table border="1px" width="50%" align="center"> <tr> <th colspan="8">liste des joueurs </th> </tr> <tr> <td> id</td> <td> nom</td> <td> prenom</td> <td> age</td> <td> datedebutcarriere</td> <td> biographie</td> <td colspan="2" >modification et suppression</td> </tr> <tr></tr> <tr></tr> <tr></tr> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=gestionjoueurs', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } if(isset($_POST['nom'] )){ $nom = $_POST['nom']; $prenom = $_POST['prenom']; $age = $_POST['age']; $jour = $_POST['jour']; $mois = $_POST['mois']; $annee = $_POST['annee']; $courtebiographie = $_POST['courtebiographie']; $datedebutcarriere = $annee.'-'.$mois.'-'.$jour ; $req = $bdd->prepare('INSERT INTO joueur(nom,prenom,age,datedebutcarriere,courtebiographie) VALUES(:nom, :prenom, :age, :datedebutcarriere, :courtebiographie)'); $req->execute(array( 'nom' => $nom, 'prenom' => $prenom, 'age' => $age, 'datedebutcarriere' => $datedebutcarriere, 'courtebiographie' => $courtebiographie, )); } $resultat = $bdd->query("SELECT * FROM joueur "); while( $rst = $resultat->fetch(PDO::FETCH_ASSOC)){ $id= $rst["id"]; $nom= $rst["nom"]; $prenom= $rst["prenom"]; $age= $rst["age"]; $datedebutcarriere= $rst["datedebutcarriere"]; $courtebiographie= $rst["courtebiographie"]; echo '<tr> <td>'.$id.'</td> <td>'.$nom.'</td> <td>'.$prenom.'</td> <td>'.$age.'</td> <td>'.$datedebutcarriere.'</td> <td>'.$courtebiographie.'</td> <td><a href="modifierjoueurs.php?id='.$id.'" rel="nofollow noopener noreferrer" target="_blank" title="modifier cette ligne">modifier</a></td> <td><a href="supprimerjoueurs.php?id='.$id.'" rel="nofollow noopener noreferrer" target="_blank" title="supprimer cette ligne">supprimer</a></td> </tr>'; } $requete = $bdd->query('SELECT AVG(age) AS \'age_moyen\' FROM joueur'); while ($donnees = $requete->fetch(PDO::FETCH_ASSOC)) { echo 'La moyenne des âge des joueurs est:'.$donnees['age_moyen']; } ?> </table> </body> </html>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
je veux empêcher mon formulaire d'envoyer des champs vide dans ma base de données, comment je dois m'y prendre? aidez moi svp
A voir également:
- Je veux empêcher mon formulaire d'envoyer un formulaire vide
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Un formulaire rempli - Guide
- Supprimer page word vide - Guide
3 réponses
Bonjour,
Déjà .. on place le code de connexion à la bdd dans un fichier à part
qu'on aura qu'à inclure dans les pages où on en a besoin
Ensuite on place le code PHP AVANT le HTML en général .. cela rend la maintenance du code plus facile.
On pense aussi à utiliser des boucles pour créer les SELECT ... pour éviter d'écrire 50 lignes ...
Par exemple :
peut être remplacé par :
Je te laisse faire pareil pour les années....
Cordialement,
Jordane
Déjà .. on place le code de connexion à la bdd dans un fichier à part
qu'on aura qu'à inclure dans les pages où on en a besoin
<?php //fichier de connexion à la bdd : cnxBdd.php try{ $bdd = new PDO('mysql:host=localhost;dbname=gestionjoueurs', 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(Exception $e){ die('Erreur : '.$e->getMessage()); } ?>
Ensuite on place le code PHP AVANT le HTML en général .. cela rend la maintenance du code plus facile.
On pense aussi à utiliser des boucles pour créer les SELECT ... pour éviter d'écrire 50 lignes ...
Par exemple :
<select name="jour"> <option value="00">jour</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select>
peut être remplacé par :
<select name="jour"> <option value="00">jour</option> <?php for($i=1;$i<=31;$i++){ $value = $i<10 ? "0".$i : $i ; echo "<option value='$value'>$value</option>"; } ?> </select>
Je te laisse faire pareil pour les années....
<?php //Activation des erreurs PHP error_reporting(E_ALL); ini_set('display-errors','on'); //connexion à la bdd require_once "cnxBdd.php"; //traitement du submit // 1 - recuperation PROPRE des variables AVANT de les utiliser $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL; $age = !empty($_POST['age']) ? $_POST['age'] : NULL; $jour = !empty($_POST['jour']) ? $_POST['jour'] : NULL; $mois = !empty($_POST['mois']) ? $_POST['mois'] : NULL; $annee = !empty($_POST['annee']) ? $_POST['annee'] : NULL; $courtebiographie = !empty($_POST['courtebiographie']) ? $_POST['courtebiographie'] : NULL; $datedebutcarriere = $annee.'-'.$mois.'-'.$jour ; if( $nom && $prenom && $age && $jour && $mois && $annee && $courtebiographie ){ //insertion des données dans la BDD $datas = array('nom' => $nom, 'prenom' => $prenom, 'age' => $age, 'datedebutcarriere' => $datedebutcarriere, 'courtebiographie' => $courtebiographie); $sql = 'INSERT INTO joueur (nom,prenom,age,datedebutcarriere,courtebiographie) VALUES(:nom, :prenom, :age, :datedebutcarriere, :courtebiographie)'; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } // fin du IF //récupération de la liste des joueurs $sql = "SELECT * FROM joueur "; try{ $requete = $bdd -> prepare($sql) ; $requete->execute(); $resultat = $requete->fetchAll(); // on stocke le resultat de la requete dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } //moyenne d'age des joueurs $requete = $bdd->query("SELECT AVG(age) AS age_moyen FROM joueur"); $row = $requete->fetch(PDO::FETCH_ASSOC); $ageMoy = !empty($row) ? $row['age_moyen'] : 0; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8"/> <title> Formulaire </title> </head> <body > <form method="post" action="index.php"> <table> <tr> <td><label name="nom">nom: </label></td> <td><input type="text" name="nom" id="nom"/> </td> </tr> <tr> <td><label name="prenom">prenom: </label></td> <td><input type="text" name="prenom"/></td> </tr> <tr> <td><label name="age">age:</label></td> <td><input type="text" name="age"></td> </tr> <tr> <td>date debut carriere </td> <td> <select name="jour"> <option value="00">jour</option> <?php for($i=1;$i<=31;$i++){ $value = $i<10 ? "0".$i : $i ; echo "<option value='$value'>$value</option>"; } ?> </select> </td> <td> <select name="mois"> <option value="00">mois</option> <option value="01">janvier</option> <option value="02">fevrier</option> <option value="03">mars</option> <option value="04">avril</option> <option value="05">mai</option> <option value="06">juin</option> <option value="07">juillet</option> <option value="08">aout</option> <option value="09">septembre</option> <option value="10">octobre</option> <option value="11">novembre</option> <option value="12">decembre</option> </select> </td> <td> <select name="annee"> <option value="0000">annee</option> <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2001">2001</option> </select> </td> </tr> <tr> <td><label name="courtebiographie">biographie: </label></td> <td><input type="text" name="courtebiographie"/></td> </tr> </br> <tr> <td> <input name="valider" type="submit" value="Enregistrer"/> <input type="reset" name="annuler" value="Annuler" /> </td> </tr> </table> <!-- <a href="listejoueurs.php" rel="nofollow noopener noreferrer" target="_blank">afficher la liste des joueurs</a> </br> --> <!--<a href="moyenne.php" rel="nofollow noopener noreferrer" target="_blank">moyenne des ages</a> --> </form> <table border="1px" width="50%" align="center"> <thead> <tr> <th colspan="8">liste des joueurs </th> </tr> </thead> <tbody> <tr> <td> id</td> <td> nom</td> <td> prenom</td> <td> age</td> <td> datedebutcarriere</td> <td> biographie</td> <td colspan="2" >modification et suppression</td> </tr> <tr></tr> <tr></tr> <tr></tr> <?php if(!empty($resultat)){ foreach($resultat as $rst){ $id= $rst["id"]; $nom= $rst["nom"]; $prenom= $rst["prenom"]; $age= $rst["age"]; $datedebutcarriere= $rst["datedebutcarriere"]; $courtebiographie= $rst["courtebiographie"]; echo '<tr> <td>'.$id.'</td> <td>'.$nom.'</td> <td>'.$prenom.'</td> <td>'.$age.'</td> <td>'.$datedebutcarriere.'</td> <td>'.$courtebiographie.'</td> <td><a href="modifierjoueurs.php?id='.$id.'" rel="nofollow noopener noreferrer" target="_blank" title="modifier cette ligne">modifier</a></td> <td><a href="supprimerjoueurs.php?id='.$id.'" rel="nofollow noopener noreferrer" target="_blank" title="supprimer cette ligne">supprimer</a></td> </tr>'; } } echo 'La moyenne des âge des joueurs est:'.$ageMoy; ?> </tbody> </table> </body> </html>
Cordialement,
Jordane