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   -
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

  1. Utilisateur anonyme
     
    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
  2. Akuro Messages postés 234 Date d'inscription   Statut Membre Dernière intervention   20
     
    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
  3. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    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
    1. jojojami Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
       
      mr , j'ai modifié mon script comme vous me l'avez indiqué et voilà ce qui s'affiche :
      Champ id user vide :/
      0
  4. Utilisateur anonyme
     
    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
    1. jojojami Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Akuro Messages postés 234 Date d'inscription   Statut Membre Dernière intervention   20
     
    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
    1. Utilisateur anonyme
       
      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
  7. jojojami Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  8. jojojami Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
     
    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