Vérifier si les champs d'un formulaire sont vides ou non..
puups
Messages postés8Date d'inscriptiondimanche 6 juillet 2014StatutMembreDernière intervention22 juillet 2014
-
Modifié par Whismeril le 22/07/2014 à 09:01
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 avril 2024
-
22 juil. 2014 à 12:31
Bonjour,
J'ai crée un formulaire pour remplir les informations d'une nouvelle personne pour que cela s'ajoute à la base de donnée.
Dans mon résonnement je voulais vérifier si l'un des champs est vide ou pas, si c'est le cas "erreur-empty" s'affichera dans l'URL de la page.
sinon les infos de la personne seront stockés dans la base de donnée 'Personne'.
La table 'Personne' possède les attributs:ID,Nom,Prenom et Grade (ce dernier est une liste déroulante).
Mon problème est que quand je remplis tous les champs, le message d'erreur 'erreur_empty' s'affiche.
j'ai vérifié les conditions de ma boucle et je ne vois pas où est le problème..
voici la portion de code qui me pose problème:
<?php
//Connection à la BDD
$bdd= new PDO('mysql:host=localhost;dbname=AlOmrane','root', '');
if (isset($_POST['send']))
{
$req= $bdd->prepare('SELECT COUNT(IDP) AS nbl FROM Personne WHERE IDP= ?');
$req->execute(array($_POST['IDP']));
$result= $req->fetch();
if (empty($_POST['IDP']) || empty($_POST['Nom']) || empty($_POST['Prenom']) || $_POST['Grade']=="selected") {
header('Location: Personnel.php?error=empty');
}
//Ne pas répeter l'IDP
elseif($result['nbl']>0)
{
header('Location: Personnel.php?error=IDP_Exist');
}
//Remplissage des champs
else{
$req->closeCursor();
$IDP=htmlspecialchars($_POST['IDP']);
$Nom=htmlspecialchars($_POST['Nom']);
$Prenom=htmlspecialchars($_POST['Prenom']);
$Grade=htmlspecialchars($_POST['Grade']);
// Les requetes SQL : Remplissage BDD
$req=$bdd->prepare('INSERT INTO Personne(IDP, Nom, Prenom, Grade) VALUES(:IDP, :Nom, :Prenom, :Grade)');
$req->execute(array(
'IDP' => $IDP,
'Nom' => $Nom,
'Prenom' => $Prenom,
'Grade' => $Grade
));
$req->closeCursor();
header('Location: Personnel.php?info=register');
}
}
else{
header('Location: Personnel.php');
}
?>
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 avril 2024344 22 juil. 2014 à 11:06
Tu vois bien que GRADE n'est pas égale à SELECTED... donc normal que tu sois dans ton if...
De plus.. attention... les balises OPTION.. tu leur mets une VALUE .. par un ID...
N'utilises pas non plus "selected" mais plutot une value à Zéro... (selected est un mot "réservé")
// LA LIGNE
<option value="selected" id="selected">Saisissez votre statut</option>
// A REMPLACE PAR :
<option value="selected" value="0">Saisissez votre statut</option>
et donc ton if devient :
if ( !$IDP || !$Nom || !$Prenom || !$Grade || $Grade!=0){
echo " erreur de saisie dans les champs" ;
print_r($_POST);
}else{
Echo " -> OK";
}
puups
Messages postés8Date d'inscriptiondimanche 6 juillet 2014StatutMembreDernière intervention22 juillet 2014 22 juil. 2014 à 11:41