Probleme de if else

Résolu/Fermé
jojojami Messages postés 28 Date d'inscription jeudi 20 septembre 2012 Statut Membre Dernière intervention 21 décembre 2013 - 20 sept. 2012 à 18:18
jojojami Messages postés 28 Date d'inscription jeudi 20 septembre 2012 Statut Membre Dernière intervention 21 décembre 2013 - 20 sept. 2012 à 23:36
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
}
?>


7 réponses

Utilisateur anonyme
20 sept. 2012 à 18:31
Bonjour

Ajoute
var_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.
1
Akuro Messages postés 234 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 23 avril 2020 20
20 sept. 2012 à 18:47
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
1
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
20 sept. 2012 à 20:10
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.
1
jojojami Messages postés 28 Date d'inscription jeudi 20 septembre 2012 Statut Membre Dernière intervention 21 décembre 2013
20 sept. 2012 à 23:12
mr , j'ai modifié mon script comme vous me l'avez indiqué et voilà ce qui s'affiche :
Champ id user vide :/
0
Utilisateur anonyme
20 sept. 2012 à 22:40
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)
1
jojojami Messages postés 28 Date d'inscription jeudi 20 septembre 2012 Statut Membre Dernière intervention 21 décembre 2013
20 sept. 2012 à 23:36
merci infiniment mr :)))) ca marche parfaitement :) je ne sais pas comment j'ai pas fait attention à ce genre de betise :/ la prochaine fois je serai plus attentive :) merci encore une fois mr :)
0

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

Posez votre question
Akuro Messages postés 234 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 23 avril 2020 20
20 sept. 2012 à 18:38
Utilise la balise code :)
Sinon ton problème vient probablement de ton
if(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é :)
0
Utilisateur anonyme
20 sept. 2012 à 22:31
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
0
jojojami Messages postés 28 Date d'inscription jeudi 20 septembre 2012 Statut Membre Dernière intervention 21 décembre 2013
20 sept. 2012 à 18:43
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>
0
jojojami Messages postés 28 Date d'inscription jeudi 20 septembre 2012 Statut Membre Dernière intervention 21 décembre 2013
Modifié par jojojami le 20/09/2012 à 19:03
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']) )
0