Probleme de if else
Résolu
jojojami
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
jojojami Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
jojojami Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
svp veuillez m'aider j'ai un probleme dans ce script , ca m'affiche directement "veuillez remplir les champs " alors qu'ils sont tous remplis
<?php
if(isset($_POST['id_article'])) $id_article=$_POST['id_article'];
else $id_article="";
if(isset($_POST['libelle'])) $libelle=$_POST['libelle'];
else $libellé="";
if(isset($_POST['quantite'])) $quantite=$_POST['quantite'];
else $quantite="";
if(isset($_POST['marque'])) $marque=$_POST['marque'];
else $marque="";
if(isset($_POST['date'])) $date=$_POST['date'];
else $date="";
//verification si un champ est vide
if(empty($id_article) OR empty($libelle) OR empty($quantite) OR empty($marque) )
{
echo '<font color="red">veuillez remplir les champs</font>';
}
// Aucun champ n'est vide, enregistrement
else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('gestion de stock',$db) or die('Erreur de selection '.mysql_error());
// requête sql
$sql = "INSERT INTO article (id_article, libelle , quantite, marque, date)
VALUES ('$id_article','$libelle',$quantite,'$marque','$date' )";
// insertion dans la bd
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo ' l article a été ajouté.'; // affichage
echo "<form method='' action='ajouter.php'>
<input type='submit' name='ajout' style='width:140px' class='button' value='ajouter un nouvel article '><br>
</form>";
mysql_close(); //fermeture de la connexion
}
?>
svp veuillez m'aider j'ai un probleme dans ce script , ca m'affiche directement "veuillez remplir les champs " alors qu'ils sont tous remplis
<?php
if(isset($_POST['id_article'])) $id_article=$_POST['id_article'];
else $id_article="";
if(isset($_POST['libelle'])) $libelle=$_POST['libelle'];
else $libellé="";
if(isset($_POST['quantite'])) $quantite=$_POST['quantite'];
else $quantite="";
if(isset($_POST['marque'])) $marque=$_POST['marque'];
else $marque="";
if(isset($_POST['date'])) $date=$_POST['date'];
else $date="";
//verification si un champ est vide
if(empty($id_article) OR empty($libelle) OR empty($quantite) OR empty($marque) )
{
echo '<font color="red">veuillez remplir les champs</font>';
}
// Aucun champ n'est vide, enregistrement
else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('gestion de stock',$db) or die('Erreur de selection '.mysql_error());
// requête sql
$sql = "INSERT INTO article (id_article, libelle , quantite, marque, date)
VALUES ('$id_article','$libelle',$quantite,'$marque','$date' )";
// insertion dans la bd
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo ' l article a été ajouté.'; // affichage
echo "<form method='' action='ajouter.php'>
<input type='submit' name='ajout' style='width:140px' class='button' value='ajouter un nouvel article '><br>
</form>";
mysql_close(); //fermeture de la connexion
}
?>
7 réponses
-
Bonjour
Ajoutevar_dump($_POST);
au début du script pour voir quelles sont les données reçues
Le problème vient peut-être du formulaire (erreur d'orthographe dans un nom de champ, méthode post pas demandée...). Il faudrait aussi le code du formulaire. -
Ben même réponse, essaye de changer les variables de
if(empty($id_intervenant) OR empty($nom_intervenant ) OR empty($tel_intervenant) OR empty($e_mail_intervenant) OR empty ($pwd_intervenant) )
par leur homologue $_POST -
J'ai une préférence pour cette disposition :
<?php if(isset($_POST['ajouter'])){ $id_intervanant=$_POST['id_intervenant']; $nom_intervenant=$_POST['nom_intervenant']; $tel_intervenant=$_POST['tel_intervenant']; $e_mail_intervenant=$_POST['e_mail_intervenant']; $pwd_intervenant=$_POST['pwd_intervenant']; if(empty($id_intervenant)){ echo 'Champ id user vide'; } elseif(empty($nom_intervenant)){ echo 'Champ nom vide'; } elseif(empty($tel_intervenant)){ echo 'Champ téléphone vide'; } elseif(empty($e_mail_intervenant)){ echo 'Champ email vide'; } elseif(empty($pwd_intervenant)){ echo 'Champ mot de passe vide'; } else{ // connexion à la base $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('gestion de stock',$db) or die('Erreur de selection '.mysql_error()); //création de la requête SQL: $sql = "INSERT INTO intervenant (id_intervenant, nom_intervenant, tel_intervenant, e_mail_intervenant, pwd_intervenant) VALUES ('$id_intervenant','$nom_intervenant',$tel_intervenant,'$e_mail_intervenant','$pwd_intervenant' )"; // insertion dans la bd mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); echo 'L insertion a été correctement effectuée.'; echo "<form method='' action='mise_a_jr_users.php'> <input type='submit' name='ajout' value='ajouter un nouvel utilistateur '><br> </form>"; mysql_close(); //fermeture de la connexion } } ?>
Pour ce code, il faut ajouter un name="ajouter" au bouton "submit".
Ps: L'utilisation d'un mysql_escape_string() ne serait pas du luxe sur l'insertion des données en BD. -
Ton script était presque bon
$id_intervanant=$_POST['id_intervenant'];
intervenant, pas intervanant.
Et tryan44 a raison pour l'utilisation de mysql_real_escape_string (plutôt que mysql_escape_string qui est dépréciée) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Utilise la balise code :)
Sinon ton problème vient probablement de tonif(empty($id_article) OR empty($libelle) OR empty($quantite) OR empty($marque) )
Essaye de remplacer toutes les variables que tu vérifie par leur homologue $_POST qui est une variable globale et donc non réinitialisée quand on recharge la page.
En espérant t'avoir aidé :)-
Il n'y a aucune raison de remplacer ces variables par leur homologue $_POST
$_POST .. est une variable globale et donc non réinitialisée quand on recharge la page. Aucun rapport... $_POST n'est pas $_SESSION. Ce n'est pas parce qu'une variable est globale qu'elle est conservée d'une page sur l'autre
-
-
mr je suis vraiment desolée je suis trompée de script :/ voilà :
<?php
var_dump($_POST);
if(isset($_POST['id_intervenant'])) $id_intervanant=$_POST['id_intervenant'];
else $id_intervenant="";
if(isset ($_POST['nom_intervenant'])) $nom_intervenant=$_POST['nom_intervenant'];
else $nom_intervenant="";
if(isset ($_POST['tel_intervenant'])) $tel_intervenant=$_POST['tel_intervenant'];
else $tel_intervenant="";
if(isset ($_POST['e_mail_intervenant'])) $e_mail_intervenant=$_POST['e_mail_intervenant'];
else $e_mail_intervenant="";
if(isset ($_POST['pwd_intervenant'])) $pwd_intervenant=$_POST['pwd_intervenant'];
else $pwd_intervenant="";
//verification des champs vides
if(empty($id_intervenant) OR empty($nom_intervenant ) OR empty($tel_intervenant) OR empty($e_mail_intervenant) OR empty ($pwd_intervenant) )
{
echo '<font color="red">veuillez remplir les champs</font>';
}
else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('gestion de stock',$db) or die('Erreur de selection '.mysql_error());
//création de la requête SQL:
$sql = "INSERT INTO intervenant (id_intervenant, nom_intervenant, tel_intervenant, e_mail_intervenant, pwd_intervenant)
VALUES ('$id_intervenant','$nom_intervenant',$tel_intervenant,'$e_mail_intervenant','$pwd_intervenant' )";
// insertion dans la bd
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo 'L insertion a été correctement effectuée.';
echo "<form method='' action='mise_a_jr_users.php'>
<input type='submit' name='ajout' value='ajouter un nouvel utilistateur '><br>
</form>";
mysql_close(); //fermeture de la connexion
}
?>
et voilà le formulaire:
<form name="ajouter_user" action="ajouter_user.php" method="POST" >
<table border="0" align="center" cellspacing="2" >
<tr align="left">
<td >id user:</td >
<td ><input type="text" name="id_intervenant"></td >
</tr >
<tr align="left">
<td >nom:</td >
<td ><input type="text" name="nom_intervenant"></td >
</tr >
<tr align="left">
<td >nº de telephone:</td >
<td ><input type="text" name="tel_intervenant"></td >
</tr >
<tr align="left">
<td >e_mail:</td >
<td ><input type="text" name="e_mail_intervenant"></td >
</tr >
<tr align="left">
<td >mot de passe:</td >
<td ><input type="text" name="pwd_intervenant"></td >
</tr >
<tr align="left">
<td colspan="2"><input class="button" type="submit" value="ajouter"></td >
</tr >
</table >
</form> -
meme probleme :( voilà j'ai remplacé :
if(empty($id_intervenant) OR empty($nom_intervenant ) OR empty($tel_intervenant) OR empty($e_mail_intervenant) OR empty ($pwd_intervenant) )
par:
if(empty($_POST['id_intervenant']) OR empty($_POST['$nom_intervenant']) OR empty($_POST['tel_intervenant']) OR empty($_POST['e_mail_intervenant']) OR empty ($_POST['pwd_intervenant']) )