Mes conditions ne s'exécute pas dans le bon ordre

Résolu
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -  
flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   -

bonjour a tous

encore un nouveau soucis pour lequel google n' a pas su m'aider

dans mon bon de commande je vérifie un tas de chose 

Notamment en dernier lieu un bouton radio afin d'obliger l'utilisateur a faire un choix

Mais malheureusement cette dernière condition passe la première 

Je souhaiterais qu'elle garde sa place de dernière vérification

Voici le code php

//si quanditee est egal a 0
if ($total_qte_bas == '0') {
  $error = "0-18";
 
//si le choix du mode de livraison est le champ cache on affiche une alerte
} else if ($livraison == '() euro(s)') {
  $error = "0-15";
  
//on verifie le reste des donnees postale
}else if (empty($nom)) {
  $error = "0-1";
} else if (empty($prenom)) {
  $error = "0-2";
} else if (empty($adresse)) {
  $error = "0-3";
} else if (empty($cp)) {
  $error = "0-4";
} else if (empty($ville)) {
  $error = "0-5";
} else if (empty($pays)) {
  $error = "0-6";
} else if (empty($email)) {
  $error = "0-7";
  
//je teste pour savoir si cela est une vraie adresse email valable pour tous les pays 
} else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
  $error = "0-10";
  
  //on teste afin de savoir si c'est bien un code postal dans le champs adresse valable pour tous les pays 
}else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
   $error = "0-11";
   
   //test de l'adresse il doit y avoir un numero valable pour tous les pays
}elseif (!preg_match('#[\d ]#', ($adresse))) {
  $error = "0-13";
  
 //message erreur du choix du pays on doit absolument entrer un des pays autorises
}else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
  $error = "0-16";
}

/**
 * GESTION DE LA LIVRAISON
 */

switch($livraison ){
    
    //on teste pour savoir si le pays est bien BE pour la belgique
    //on teste pour savoir si nous sommes bien en belgique
  case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
    //  if(!filter_var($c, FILTER_VALIDATE_INT)){
   if($cb_PAYS != "BE"){ 
      $error = "0-8";
    }
   // if($cb_PAYS != "BE" || $cb_PAYS != "FR" ){
     // $error = "0-14";
      //}
    if($pays !== "Belgique" and $cb_PAYS == "BE"){
        $error = "0-17";
    }
     if($pays === "Belgique" and $cb_PAYS != "BE"){
        $error = "0-19";
    }
   
    break;
    
    //on teste pour savoir si le pays est bien FR pour la france 
    //on teste pour savoir si nous sommes bien en france
  case '(mondial relay-FRANCE)4 euro(s)':
      if($cb_PAYS != "FR"){ 
      $error = "0-8";
    }
    //if($pays !== "France" || $cb_PAYS != "FR"){
      //  $error = "0-14";
    //}
      if($pays !== "France" and $cb_PAYS == "FR"){
        $error = "0-17";
    }
     if($pays === "France" and $cb_PAYS != "FR"){
        $error = "0-19";
    }
   
    break;
    
    //on teste pour savoir si le pays est bien LU pour le luxembourg
    //on teste pour savoir si nous sommes bien au luxembourg
  case '(mondial relay-LUXEMBOURG)3 euro(s)':
      if($cb_PAYS != "LU"){ 
      $error = "0-8";
    }
    // if($pays !== "Luxembourg" || $cb_PAYS != "LU"){
      //  $error = "0-17";
    //}
       if($pays !== "Luxembourg" and $cb_PAYS == "LU"){
        $error = "0-17";
    }
     if($pays === "Luxembourg" and $cb_PAYS != "LU"){
        $error = "0-19";
    }
    break;
    
    //on teste pour savoir si le pays est bien NL pour les pays-bas
    //on teste pour savoir si nous sommes bien aux pays pas
   case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
      if($cb_PAYS != "NL"){ 
      $error = "0-8";
    }
    // if($pays !== "Pays-bas" || $cb_PAYS != "NL"){
      //  $error = "0-17";
    //}
        if($pays !== "Pays-bas" and $cb_PAYS == "NL"){
        $error = "0-17";
    }
     if($pays === "Pays-bas" and $cb_PAYS != "NL"){
        $error = "0-19";
    }
    break;
    
    //********************************
    //on teste les envois postaux******
    //**********************************
    //si on choisit frais de livraison pays le pays choisi doit etre pays bas 
  case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
    if( $pays != "Pays-bas") {
      $error = "0-17";
    }
    break;

//si on choisit frais de livraison pays le pays choisi doit etre belgique et les 3 point doivent etre remplit
  case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
    if($pays != "Belgique") {
      $error = "0-17";
    }
    if( !$adressepoint || !$cppoint || !$villepoint) {
      $error = "0-9";
    }
    break;
    
    //si on choisit frais de livraison pays le pays choisi doit etre belgique
  case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
  case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
    if($pays != "Belgique") {
      $error = "0-17";
    }
    break;
    
    //si on choisit frais de livraison pays le pays choisi doit etre luxembourg
  case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
    if($pays != "Luxembourg") {
      $error = "0-17";
    }
    break;

  case '(POSTE-ENVELLOPPE-FRANCE)4 euro(s)':
    if($pays != "France" ||  $cb_PAYS != "FR") {
      $error = "0-17";
    }
    break;
  //default:
    //aucune erreur detectée
  //$error = "Aucune erreur detectée "; //tu pourras retirer ce $error = quand tout marchera bien
}
    //********************************
    //fin teste les envois postaux******
    //**********************************

// AUTRE ERREUR
//message alertes si autre probleme

//je verifie si le total du bon de promo est pareil au panier 
if ($promotioncases =="20" && ($nouveau_prix_promo_int !=  $prix_total_int )  )
{  $error = "0-12";}  

//je verifie si le bouton radio coche n'est pas 10
 else if ($promotioncases =="10" )  
 { $error = "0-20";}  

// Dernier code d'erreur si c'est pas bon pour la commande
else if (!$commande) {
  $error = "0-21";
}  

//une fois tous les tests terminés..
// tu peux faire le echo de ton erreur si il y en a une... ou faire le reste de ton code

if(!empty($error)){
  echo $error;
  //sinon on insert en bdd et ton envoi de mail
}else{

et c'est cette condition qui refuse de rester dans les dernières a être testée 

//je verifie si le bouton radio coche n'est pas 10
 else if ($promotioncases =="10" )  
 { $error = "0-20";}  

8 réponses

  1. blackmefias_3350 Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   70
     

    bonjour,

    Ne faudrait-il pas écrire une ou plusieurs  fonction(s) qui se trouverai dans un dossier    et les appeler  dans votre fichier (page.php).       


    1
    1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
       

      bonjour 

      Merci pour la réponse

      mon soucis est le swith dans les conditions 

      si je supprime la partie des switchs tout fonctionne correctement 

      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    Pour moi, ce qui est bizarre, c'est que:

    1. tu n'as ajouté aucun echo() dans le code, qui te permettrait de comprendre ce que fait ton code
    2. tu nous expliques que tu as un résultat inattendu, sans nous donner le contenu des variables concernées.

    Au minimum, au lieu d'écrire "c'est bizarre", tu pourrais expliquer pourquoi tu trouves cela bizarre, et quel résultat tu aurais attendu.

    1
    1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
       

      bonjour yg_be

      j'ouvre mon bon de commande et je clic sur passer la commande 

      au niveau des variables repérée je n'ai que  

       
      $promotioncases =="10" qui est récupérée puisque c'est un bouton caché 

      pour toute les autres elles sont a 0 ou null

      voici mon code modifie avec des var_dump

      //debut des messages d'alertes
      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";
        
       echo "quanditee";
      var_dump($error);
      echo "quanditee";
      
      //si le choix du mode de livraison est le champ cache on affiche une alerte
      } else if ($livraison == '() euro(s)') {
        $error = "0-15";
        
         echo "livraison";
      var_dump($error);
      echo "livraison";
      
      //on verifie le reste des donnees postale
      }else if (empty($nom)) {
        $error = "0-1";
      } else if (empty($prenom)) {
        $error = "0-2";
      } else if (empty($adresse)) {
        $error = "0-3";
      } else if (empty($cp)) {
        $error = "0-4";
      } else if (empty($ville)) {
        $error = "0-5";
      } else if (empty($pays)) {
        $error = "0-6";
      } else if (empty($email)) {
        $error = "0-7";
        
      //je teste pour savoir si cela est une vraie adresse email valable pour tous les pays 
      } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
        $error = "0-10";
        
        //on teste afin de savoir si c'est bien un code postal dans le champs adresse valable pour tous les pays 
      }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
         $error = "0-11";
         
         //test de l'adresse il doit y avoir un numero valable pour tous les pays
      }elseif (!preg_match('#[\d ]#', ($adresse))) {
        $error = "0-13";
        
       //message erreur du choix du pays on doit absolument entrer un des pays autorises
      }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
        $error = "0-16";
        
           echo "country";
      var_dump($error);
      echo "country";
      
      }
      
      /**
       * GESTION DE LA LIVRAISON
       */
      
      
      switch($livraison ){
          
          //on teste pour savoir si le pays est bien BE pour la belgique
          //on teste pour savoir si nous sommes bien en belgique
        case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
          //  if(!filter_var($c, FILTER_VALIDATE_INT)){
         if($cb_PAYS != "BE"){ 
            $error = "0-8";
          }
         // if($cb_PAYS != "BE" || $cb_PAYS != "FR" ){
           // $error = "0-14";
            //}
          if($pays !== "Belgique" and $cb_PAYS == "BE"){
              $error = "0-17";
          }
           if($pays === "Belgique" and $cb_PAYS != "BE"){
              $error = "0-19";
          }
         
          break;
          
          //on teste pour savoir si le pays est bien FR pour la france 
          //on teste pour savoir si nous sommes bien en france
        case '(mondial relay-FRANCE)4 euro(s)':
            if($cb_PAYS != "FR"){ 
            $error = "0-8";
          }
          //if($pays !== "France" || $cb_PAYS != "FR"){
            //  $error = "0-14";
          //}
            if($pays !== "France" and $cb_PAYS == "FR"){
              $error = "0-17";
          }
           if($pays === "France" and $cb_PAYS != "FR"){
              $error = "0-19";
          }
         
          break;
          
          //on teste pour savoir si le pays est bien LU pour le luxembourg
          //on teste pour savoir si nous sommes bien au luxembourg
        case '(mondial relay-LUXEMBOURG)3 euro(s)':
            if($cb_PAYS != "LU"){ 
            $error = "0-8";
          }
          // if($pays !== "Luxembourg" || $cb_PAYS != "LU"){
            //  $error = "0-17";
          //}
             if($pays !== "Luxembourg" and $cb_PAYS == "LU"){
              $error = "0-17";
          }
           if($pays === "Luxembourg" and $cb_PAYS != "LU"){
              $error = "0-19";
          }
          break;
          
          //on teste pour savoir si le pays est bien NL pour les pays-bas
          //on teste pour savoir si nous sommes bien aux pays pas
         case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
            if($cb_PAYS != "NL"){ 
            $error = "0-8";
          }
          // if($pays !== "Pays-bas" || $cb_PAYS != "NL"){
            //  $error = "0-17";
          //}
              if($pays !== "Pays-bas" and $cb_PAYS == "NL"){
              $error = "0-17";
          }
           if($pays === "Pays-bas" and $cb_PAYS != "NL"){
              $error = "0-19";
          }
          break;
          
          //********************************
          //on teste les envois postaux******
          //**********************************
          //si on choisit frais de livraison pays le pays choisi doit etre pays bas 
        case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
          if( $pays != "Pays-bas") {
            $error = "0-17";
          }
          break;
      
      //si on choisit frais de livraison pays le pays choisi doit etre belgique et les 3 point doivent etre remplit
        case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
          if($pays != "Belgique") {
            $error = "0-17";
          }
          if( !$adressepoint || !$cppoint || !$villepoint) {
            $error = "0-9";
          }
          break;
          
          //si on choisit frais de livraison pays le pays choisi doit etre belgique
        case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
        case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
          if($pays != "Belgique") {
            $error = "0-17";
          }
          break;
          
          //si on choisit frais de livraison pays le pays choisi doit etre luxembourg
        case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
          if($pays != "Luxembourg") {
            $error = "0-17";
          }
          break;
      
        case '(POSTE-ENVELLOPPE-FRANCE)4 euro(s)':
          if($pays != "France" ||  $cb_PAYS != "FR") {
            $error = "0-17";
          }
          break;
        //default:
          //aucune erreur detectée
        //$error = "Aucune erreur detectée "; //tu pourras retirer ce $error = quand tout marchera bien
      }
          //********************************
          //fin teste les envois postaux******
          //**********************************
      
      // AUTRE ERREUR
      //message alertes si autre probleme
      echo "erreur";
      var_dump($error);
      echo "erreur";
      
      //je verifie si le bouton radio coche n'est pas 10
        if ($promotioncases =="10" )  
       { $error = "0-20";}  
      
      
      else if ($promotioncases =="20" && ($nouveau_prix_promo_int !=  $prix_total_int )  )
      {  $error = "0-12";}  
      
      
      
      // Dernier code d'erreur si c'est pas bon pour la commande
      else if (!$commande) {
        $error = "0-21";
      }  
      
      //une fois tous les tests terminés..
      // tu peux faire le echo de ton erreur si il y en a une... ou faire le reste de ton code
      
      if(!empty($error)){
        echo $error;
        //sinon on insert en bdd et ton envoi de mail
      }else{

      mais ce que cela me retourne n'est pas très clair  dans les 4 var_dump j'ai un complet et un deuxième sans les echos

      quand aux 2 autres pas présent 

      quanditeestring(4) "0-18" quanditeeerreurstring(4) "0-18" erreur0-20
      1
  3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     

    je pourrais remplacer le switch par des else if , mais j'aimerais comprendre pourquoi ca ne fonctionne pas bien avec ce switch

    1
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    Pour moi, ton code se comporte exactement comme il est écrit.

    En quoi se comportement est-il bizarre?

    Si j'était toi, je prendrais un peu de temps pour faire des echo() qui te donnent un affichage plus clair: j'ai l'impression que tu ne comprends pas ce qui est affiché. tu écris, d'ailleurs "ce que cela me retourne n'est pas très clair"

    1
    1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
       

      Merci pour ton aide 

      si si je comprends ce qu'il devrait faire 

      prenons la toute première condition 

      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";

      lorsque je clic sur valider la commande 

      c'est bien par cette condition qu'il doit commencer ???

      pourquoi alors il commence par celle ci

      //je verifie si le bouton radio coche n'est pas 10
       else if ($promotioncases =="10" )  
       { $error = "0-20";} 

      et pour cause de me répéter si j'enlève la partie du switch cela fonctionne correctement 

      c 'est bien la condition suivante qui est la première a fonctionner 

      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
       

      Au risque de me répéter moi aussi ... il ne COMMENCE pas par cette condition ... il FINI par cette condition...   et ECRASE la valeur précédemment renseignée dans la variable $error ...

      Tu as beaucoup de mal à comprendre visiblement ...  et c'est pourtant le B.A.BA de la programmation ( quelque soit le langage (procédural )

      Faudrait vraiment que tu suive des formations avant de continuer tes dev ( tes bidouilles devrais-je dire.. )

      Il te manque les bases du langages  et ça ne peut que te ralentir fortement dans l'écriture de tes code.

      Quoi qu'il en soit, regarde ma réponse précédente. Cela devrait "patcher" ton "bug"

      1
    3. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       

      en supposant qu'il finisse par cette condition 

      J'ai parfaitement compris qu' a chaque nouvelle condition la précédente est encrassée et remplacée par la suivante 

      Pourquoi lorsque je remplace le morceau de switch par des else if 

      Tout fonctionne correctement ?

      Avec ce code aucun soucis 

      //debut des messages d'alertes
      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";
        
       //echo "quanditee";
      //var_dump($error);
      //echo "quanditee";
      
      //si le choix du mode de livraison est le champ cache on affiche une alerte
      } else if ($livraison == '() euro(s)') {
        $error = "0-15";
        
        // echo "livraison";
      //var_dump($error);
      //echo "livraison";
      
      //on verifie le reste des donnees postale
      }else if (empty($nom)) {
        $error = "0-1";
      } else if (empty($prenom)) {
        $error = "0-2";
      } else if (empty($adresse)) {
        $error = "0-3";
      } else if (empty($cp)) {
        $error = "0-4";
      } else if (empty($ville)) {
        $error = "0-5";
      } else if (empty($pays)) {
        $error = "0-6";
      } else if (empty($email)) {
        $error = "0-7";
        
      //je teste pour savoir si cela est une vraie adresse email valable pour tous les pays 
      } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
        $error = "0-10";
        
        //on teste afin de savoir si c'est bien un code postal dans le champs adresse valable pour tous les pays 
      }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
         $error = "0-11";
         
         //test de l'adresse il doit y avoir un numero valable pour tous les pays
      }elseif (!preg_match('#[\d ]#', ($adresse))) {
        $error = "0-13";
        
       //message erreur du choix du pays on doit absolument entrer un des pays autorises
      }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
        $error = "0-16";
        
        //   echo "country";
      //var_dump($error);
      //echo "country";
      
      }
      
      
      
      
      
      
      
      /**
       * GESTION DE LA LIVRAISON
       */
      
      
      else if ($livraison  == '(MONDIAL-RELAY-BELGIQUE)3 euro(s)') {
           //  if(!filter_var($c, FILTER_VALIDATE_INT)){
            if($cb_PAYS != "BE"){ 
              $error = "0-8";
          }
           if($pays !== "Belgique" and $cb_PAYS == "BE"){
              $error = "0-17";
          }
           if($pays === "Belgique" and $cb_PAYS != "BE"){
              $error = "0-19";
          }
      } elseif ($livraison== '(mondial relay-FRANCE)4 euro(s)') {
              if($cb_PAYS != "FR"){ 
            $error = "0-8";
          }
             if($pays !== "France" and $cb_PAYS == "FR"){
              $error = "0-17";
          }
           if($pays === "France" and $cb_PAYS != "FR"){
              $error = "0-19";
          }
         
      } elseif ($livraison == '(mondial relay-LUXEMBOURG)3 euro(s)') {
             if($cb_PAYS != "LU"){ 
            $error = "0-8";
          }
             if($pays !== "Luxembourg" and $cb_PAYS == "LU"){
              $error = "0-17";
          }
           if($pays === "Luxembourg" and $cb_PAYS != "LU"){
              $error = "0-19";
          }
      
      
      } elseif ($livraison == '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)') {
             if($cb_PAYS != "NL"){ 
            $error = "0-8";
          }
            if($pays !== "Pays-bas" and $cb_PAYS == "NL"){
              $error = "0-17";
          }
           if($pays === "Pays-bas" and $cb_PAYS != "NL"){
              $error = "0-19";
          }
      }
      elseif ($livraison == '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)') {
            if( $pays != "Pays-bas") {
            $error = "0-17";
          }
      }
      elseif ($livraison == '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)') {
            if($pays != "Belgique") {
            $error = "0-17";
          }
          if( !$adressepoint || !$cppoint || !$villepoint) {
            $error = "0-9";
          }
      }
      elseif ($livraison == '(POSTE-ENVELLOPPE-belgique)1 euro(s)') {
           if($pays != "Belgique") {
            $error = "0-17";
          }
      }
      elseif ($livraison =='(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)') {
            if($pays != "Luxembourg") {
            $error = "0-17";
          }
      }
      elseif ($livraison == '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)') {
             if($pays != "France" ||  $cb_PAYS != "FR") {
            $error = "0-17";
          }
      }
      
      elseif ($livraison == "(POSTE-COLIS-BELGIQUE)6.50 euro(s)") {
             if($pays != "Belgique" ||  $cb_PAYS != "FR") {
            $error = "0-17";
          }
      }
      
      //je verifie si le bouton radio coche n'est pas 10 et qu'il n'y a pas déjà une autre erreur
      // provenant des tests qui se trouvent au dessus dans le code...
      elseif ($promotioncases =="10" ) ) { 
          $error = "0-20";
      }   
      
      
      else if ($promotioncases =="20" && ($nouveau_prix_promo_int !=  $prix_total_int )  ){  
          $error = "0-12";
      }  
      
      
      
      // Dernier code d'erreur si c'est pas bon pour la commande
      else if (!$commande) {
        $error = "0-21";
      }  
      
      //une fois tous les tests terminés..
      // tu peux faire le echo de ton erreur si il y en a une... ou faire le reste de ton code
      
      //if(!empty($error)){
       // echo $error;
        //sinon on insert en bdd et ton envoi de mail
      }else{
      0
    4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
       

      Par ce que dans un IF .. ELSEIF .. ELSE ...   tu n'entres que dans UN seul cas ...

      Exemple :

      $var = 10;
      
      if($var == 0 ){
        echo "var:" . $var;
      } elseif ($var==5){
          echo "var:" . $var;
      }elseif($var==10){
        //Il va entrer ici
        echo "var:" . $var;
      
      }elseif($var < 20 ){
        //C'est aussi vrai.. mais il se sera arrété à la condition d'avant
         echo "var:" . $var;
      }
      

      Alors que là .. toi tu as plusieurs blocks (comme je te l'ai déjà expliqué) Et donc.. tu es dans ce cas de figure

      $var = 10;
      
      if($var == 0 ){
        echo "var:" . $var;
      } elseif ($var==5){
          echo "var:" . $var;
      }elseif($var==10){
        //Il va entrer ici
        echo "var:" . $var;
      }
      
      
      // AUTRE IF/ESLE..
      if($var == 50 ){
         echo "var:" . $var;
      }elseif($var < 20 ){
        //C'est aussi vrai.. et comme c'est dans autre IF . cette condition sera également traitée
         echo "var:" . $var;
      }
      

      J'espère que cette fois tu as compris....

      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
       

      Il suffisait d'ajouter un else avant le switch.

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

    Posez votre question
  6. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     

    Ce n'est pourtant pas bien compliqué

    Au lieu de

    // AUTRE ERREUR
    //message alertes si autre probleme
    echo "code";
    var_dump($error);
    echo "code";
    
    //je verifie si le bouton radio coche n'est pas 10
      if ($promotioncases =="10" )  
     { $error = "0-20";}  
    

    Tu fais

    // AUTRE ERREUR
    //message alertes si autre probleme
    echo "code";
    var_dump($error);
    echo "code";
    
    //je verifie si le bouton radio coche n'est pas 10 et qu'il n'y a pas déjà une autre erreur
    // provenant des tests qui se trouvent au dessus dans le code...
    if ($promotioncases =="10" && empty($error) ) { 
        $error = "0-20";
    }  
    

    PS: tu noteras que mes IF .. je les écris en plaçant les accolades d'une certaines façons ..  ( c'est ce que préconise la norme.. et ça rend le code plus lisible ( surtout pour des vrais développeurs). )

    Merci donc de bien vouloir respecter cette "norme" lorsque tu nous présentes ton code


    1
    1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
       

      Merci jordane pour le code 

      Je vais respecter cette norme ...

      je viens mettre en place ton code 

      voici ce q'il me retourne 

      codestring(4) "0-18" code0-18

      donc que que $error n'est pas vide ...

      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
         

        C'est bien ce que tu voulais ?

        Tu peux donc mettre la discussion en résolue. Merci

        1
      2. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         

        oui et non 

        j'aurais souhaiter savoir pourquoi le code avec le switch ne fonctionne pas correctement 

        alors que si je remplace le morceau de code switch par des else if cela fonctionne correctement 

        Mais bon le principal c'est que cela fonctionne 

        0
      3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
         

        Mais... mais... c'est ce que je n'arrête pas de t'expliquer !

        Ton code est découpé en TROIS blocs conditionnels .

        - Un premier ensemble de IF / ELSEIF ..

        - Puis un SWITCH ( c'est un peu comme un if/elseif )

        - Puis un autre bloc IF / ELSEIF 

        Donc .. CHAQUE BLOC est susceptible d'écraser ta variable $error ..  

        Bon... là je ne sais plus quoi te dire ni comment te l'expliquer !  Relis mes explications

        Essais de comprendre les exemples que je t'ai donné. ... par ce que .. franchement.. là je ne peux rien de plus pour t'aider à comprendre le fonctionnement "basique" de la programmation.

        0
  7. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
     

    Bonjour,

    Qu'est-ce qui vous fait dire qu'elle est tester avant les autres ? 

    Qu'est-ce qui vous est remonté? 


    0
    1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
       

      bonjour

      Merci pour la reponse

      Car lorsque je valide ma commande sans entrer aucune information 

      la première condition est de me signaler qu il faut ajouter des articles 

      0
      1. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
         

        Vous voyez ca dans le mauvais sens. En réalité, c'est bien la dernière valeur testé. Mais vu que $error est constamment modifié, vous n'avez que le dernier résultat de $error.

        Pour le tester, essayer de voir la variation de $error au fil du temps en rajoutant des var_dump($error). 

        0
      2. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention  
         

        lorsque je parle d'erreur ce sont des messages d'erreur que l'utilisateur voit par l'intermédiaire des modals 

        0
  8. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     

    Bonjour,

    Comme pour chacune de tes questions ....  pourrais tu nous faire un var_dump de tes variable afin de nous indiquer ce qu'elles valent et donc, par conséquent..  si c'est normal que ça entre dans ton elseif ...


    0
    1. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
       

      Bonjour jordane 

      je viens de faire des var_dump mais tout est vide sauf le bouton radio cache qui est bien a 10 

      ce qui est logique puisque je valide ma commande sans entrer aucune information 

      Et normalement dans ce cas de figure ca serait la condition et l'erreur qu'il faut entrer des articles qui devrait fonctionner  et non pas celle que je dois cocher un bouton radio autre que le 10

      0
  9. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190
     

     je viens de remarquer que si je déplace cette condition et modifie le code de cette façon

    la première condition est bien accomplie la première 

    /debut des messages d'alertes
    //si quanditee est egal a 0
    if ($total_qte_bas == '0') {
      $error = "0-18";
     
    //si le choix du mode de livraison est le champ cache on affiche une alerte
    } else if ($livraison == '() euro(s)') {
      $error = "0-15";
      
    //on verifie le reste des donnees postale
    }else if (empty($nom)) {
      $error = "0-1";
    } else if (empty($prenom)) {
      $error = "0-2";
    } else if (empty($adresse)) {
      $error = "0-3";
    } else if (empty($cp)) {
      $error = "0-4";
    } else if (empty($ville)) {
      $error = "0-5";
    } else if (empty($pays)) {
      $error = "0-6";
    } else if (empty($email)) {
      $error = "0-7";
      
    //je teste pour savoir si cela est une vraie adresse email valable pour tous les pays 
    } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
      $error = "0-10";
      
      //on teste afin de savoir si c'est bien un code postal dans le champs adresse valable pour tous les pays 
    }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
       $error = "0-11";
       
       //test de l'adresse il doit y avoir un numero valable pour tous les pays
    }elseif (!preg_match('#[\d ]#', ($adresse))) {
      $error = "0-13";
      
     //message erreur du choix du pays on doit absolument entrer un des pays autorises
    }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
      $error = "0-16";
    }
    //je verifie si le bouton radio coche n'est pas 10
     else if ($promotioncases =="10" )  
     { $error = "0-20";}  
    
    /**
     * GESTION DE LA LIVRAISON
     */
    
    
    switch($livraison ){
        
        //on teste pour savoir si le pays est bien BE pour la belgique
        //on teste pour savoir si nous sommes bien en belgique
      case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
        //  if(!filter_var($c, FILTER_VALIDATE_INT)){
       if($cb_PAYS != "BE"){ 
          $error = "0-8";
        }
       // if($cb_PAYS != "BE" || $cb_PAYS != "FR" ){
         // $error = "0-14";
          //}
        if($pays !== "Belgique" and $cb_PAYS == "BE"){
            $error = "0-17";
        }
         if($pays === "Belgique" and $cb_PAYS != "BE"){
            $error = "0-19";
        }
       
        break;
        
        //on teste pour savoir si le pays est bien FR pour la france 
        //on teste pour savoir si nous sommes bien en france
      case '(mondial relay-FRANCE)4 euro(s)':
          if($cb_PAYS != "FR"){ 
          $error = "0-8";
        }
        //if($pays !== "France" || $cb_PAYS != "FR"){
          //  $error = "0-14";
        //}
          if($pays !== "France" and $cb_PAYS == "FR"){
            $error = "0-17";
        }
         if($pays === "France" and $cb_PAYS != "FR"){
            $error = "0-19";
        }
       
        break;
        
        //on teste pour savoir si le pays est bien LU pour le luxembourg
        //on teste pour savoir si nous sommes bien au luxembourg
      case '(mondial relay-LUXEMBOURG)3 euro(s)':
          if($cb_PAYS != "LU"){ 
          $error = "0-8";
        }
        // if($pays !== "Luxembourg" || $cb_PAYS != "LU"){
          //  $error = "0-17";
        //}
           if($pays !== "Luxembourg" and $cb_PAYS == "LU"){
            $error = "0-17";
        }
         if($pays === "Luxembourg" and $cb_PAYS != "LU"){
            $error = "0-19";
        }
        break;
        
        //on teste pour savoir si le pays est bien NL pour les pays-bas
        //on teste pour savoir si nous sommes bien aux pays pas
       case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
          if($cb_PAYS != "NL"){ 
          $error = "0-8";
        }
        // if($pays !== "Pays-bas" || $cb_PAYS != "NL"){
          //  $error = "0-17";
        //}
            if($pays !== "Pays-bas" and $cb_PAYS == "NL"){
            $error = "0-17";
        }
         if($pays === "Pays-bas" and $cb_PAYS != "NL"){
            $error = "0-19";
        }
        break;
        
        //********************************
        //on teste les envois postaux******
        //**********************************
        //si on choisit frais de livraison pays le pays choisi doit etre pays bas 
      case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
        if( $pays != "Pays-bas") {
          $error = "0-17";
        }
        break;
    
    //si on choisit frais de livraison pays le pays choisi doit etre belgique et les 3 point doivent etre remplit
      case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
        if($pays != "Belgique") {
          $error = "0-17";
        }
        if( !$adressepoint || !$cppoint || !$villepoint) {
          $error = "0-9";
        }
        break;
        
        //si on choisit frais de livraison pays le pays choisi doit etre belgique
      case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
      case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
        if($pays != "Belgique") {
          $error = "0-17";
        }
        break;
        
        //si on choisit frais de livraison pays le pays choisi doit etre luxembourg
      case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
        if($pays != "Luxembourg") {
          $error = "0-17";
        }
        break;
    
      case '(POSTE-ENVELLOPPE-FRANCE)4 euro(s)':
        if($pays != "France" ||  $cb_PAYS != "FR") {
          $error = "0-17";
        }
        break;
      //default:
        //aucune erreur detectée
      //$error = "Aucune erreur detectée "; //tu pourras retirer ce $error = quand tout marchera bien
    }
        //********************************
        //fin teste les envois postaux******
        //**********************************
    
    // AUTRE ERREUR
    //message alertes si autre probleme
    
    
    
    
    
    
    
    
    
    if ($promotioncases =="20" && ($nouveau_prix_promo_int !=  $prix_total_int )  )
    {  $error = "0-12";}  
    
    
    
    // Dernier code d'erreur si c'est pas bon pour la commande
    else if (!$commande) {
      $error = "0-21";
    }  

    mais cela ne m'intéresse pas que le contrôle du bouton radio soit a cet endroit

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       

      Ben oui.. mais le code est lu de haut en bas . Et il s'arrête donc sur la première condition valide...

      A toi d'organiser tes tests dans l'ordre que tu souhaites...

      0
    2. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       

      oui jordane on est d'accord mais lorsque je test le premier code 

      Ma condition 

      //je verifie si le bouton radio coche n'est pas 10
       else if ($promotioncases =="10" )  
       { $error = "0-20";}  

      passe non pas dans les dernières conditions mais en premier 

      Par contre contre si je la place au dessus du switch elle garde sa place a être exécutée avant les conditions du switch 

      mais je désire qu'elle soie exécutée après le switch  

      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
       

      C'est quoi cette histoire de premier ... ??

      Les conditions sont testées dans l'ordre.

      Vu que tu utilises une seule variable $error   ..  elle prend la dernière valeur que tu lui a affecté .. même si tu as eu d'autres erreurs avant ...

      En gros..

      $error = 1;
      
      //je fais d'autres truc . et maintenant je dis
      $error = 2;
      
      //encore autre chose ..
      $error = "trucmuche" ;
      
      
      
      
      echo $error;  // affichera forcément le dernier renseigné ... à savoir.. trcumuche
      

      Si tu veux pouvoir gérer plusieurs erreurs en même temps, il te faut passer non pas par une "string" .. mais par un array ..

      Ou alors, pour gérer chaque erreur dans l'ordre .. penser à mettre des return/exit dans ton code dans tes if .

      0
    4. flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention   190 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       

      Jordane je pense que l'on s'est mal compris 

      Dans mon code la première condition est 

      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";

      voici mon code qui fonctionne de façon correcte c'est a dire que l'ordre des conditions est respectée

      Car j'ai enlevé la partie du switch

      //debut des messages d'alertes
      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";
       
      //si le choix du mode de livraison est le champ cache on affiche une alerte
      } else if ($livraison == '() euro(s)') {
        $error = "0-15";
        
      //on verifie le reste des donnees postale
      }else if (empty($nom)) {
        $error = "0-1";
      } else if (empty($prenom)) {
        $error = "0-2";
      } else if (empty($adresse)) {
        $error = "0-3";
      } else if (empty($cp)) {
        $error = "0-4";
      } else if (empty($ville)) {
        $error = "0-5";
      } else if (empty($pays)) {
        $error = "0-6";
      } else if (empty($email)) {
        $error = "0-7";
        
      //je teste pour savoir si cela est une vraie adresse email valable pour tous les pays 
      } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
        $error = "0-10";
        
        //on teste afin de savoir si c'est bien un code postal dans le champs adresse valable pour tous les pays 
      }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
         $error = "0-11";
         
         //test de l'adresse il doit y avoir un numero valable pour tous les pays
      }elseif (!preg_match('#[\d ]#', ($adresse))) {
        $error = "0-13";
        
       //message erreur du choix du pays on doit absolument entrer un des pays autorises
      }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
        $error = "0-16";
      }
      //je verifie si le bouton radio coche n'est pas 10
       else if ($promotioncases =="10" )  
       { $error = "0-20";}  
      
      
      else if ($promotioncases =="20" && ($nouveau_prix_promo_int !=  $prix_total_int )  )
      {  $error = "0-12";}  
      
      
      
      // Dernier code d'erreur si c'est pas bon pour la commande
      else if (!$commande) {
        $error = "0-21";
      }  
      
      //une fois tous les tests terminés..
      // tu peux faire le echo de ton erreur si il y en a une... ou faire le reste de ton code
      
      if(!empty($error)){
        echo $error;
        //sinon on insert en bdd et ton envoi de mail
      }else{

      par contre si je laisse le code avec le switch comme ci dessous 

      la condition 

      //je verifie si le bouton radio coche n'est pas 10
       else if ($promotioncases =="10" )  
       { $error = "0-20";}  

      est exécutée en premier 

      /debut des messages d'alertes
      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";
       
      //si le choix du mode de livraison est le champ cache on affiche une alerte
      } else if ($livraison == '() euro(s)') {
        $error = "0-15";
        
      //on verifie le reste des donnees postale
      }else if (empty($nom)) {
        $error = "0-1";
      } else if (empty($prenom)) {
        $error = "0-2";
      } else if (empty($adresse)) {
        $error = "0-3";
      } else if (empty($cp)) {
        $error = "0-4";
      } else if (empty($ville)) {
        $error = "0-5";
      } else if (empty($pays)) {
        $error = "0-6";
      } else if (empty($email)) {
        $error = "0-7";
        
      //je teste pour savoir si cela est une vraie adresse email valable pour tous les pays 
      } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
        $error = "0-10";
        
        //on teste afin de savoir si c'est bien un code postal dans le champs adresse valable pour tous les pays 
      }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
         $error = "0-11";
         
         //test de l'adresse il doit y avoir un numero valable pour tous les pays
      }elseif (!preg_match('#[\d ]#', ($adresse))) {
        $error = "0-13";
        
       //message erreur du choix du pays on doit absolument entrer un des pays autorises
      }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
        $error = "0-16";
      }
      
      /**
       * GESTION DE LA LIVRAISON
       */
      
      
      switch($livraison ){
          
          //on teste pour savoir si le pays est bien BE pour la belgique
          //on teste pour savoir si nous sommes bien en belgique
        case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
          //  if(!filter_var($c, FILTER_VALIDATE_INT)){
         if($cb_PAYS != "BE"){ 
            $error = "0-8";
          }
         // if($cb_PAYS != "BE" || $cb_PAYS != "FR" ){
           // $error = "0-14";
            //}
          if($pays !== "Belgique" and $cb_PAYS == "BE"){
              $error = "0-17";
          }
           if($pays === "Belgique" and $cb_PAYS != "BE"){
              $error = "0-19";
          }
         
          break;
          
          //on teste pour savoir si le pays est bien FR pour la france 
          //on teste pour savoir si nous sommes bien en france
        case '(mondial relay-FRANCE)4 euro(s)':
            if($cb_PAYS != "FR"){ 
            $error = "0-8";
          }
          //if($pays !== "France" || $cb_PAYS != "FR"){
            //  $error = "0-14";
          //}
            if($pays !== "France" and $cb_PAYS == "FR"){
              $error = "0-17";
          }
           if($pays === "France" and $cb_PAYS != "FR"){
              $error = "0-19";
          }
         
          break;
          
          //on teste pour savoir si le pays est bien LU pour le luxembourg
          //on teste pour savoir si nous sommes bien au luxembourg
        case '(mondial relay-LUXEMBOURG)3 euro(s)':
            if($cb_PAYS != "LU"){ 
            $error = "0-8";
          }
          // if($pays !== "Luxembourg" || $cb_PAYS != "LU"){
            //  $error = "0-17";
          //}
             if($pays !== "Luxembourg" and $cb_PAYS == "LU"){
              $error = "0-17";
          }
           if($pays === "Luxembourg" and $cb_PAYS != "LU"){
              $error = "0-19";
          }
          break;
          
          //on teste pour savoir si le pays est bien NL pour les pays-bas
          //on teste pour savoir si nous sommes bien aux pays pas
         case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
            if($cb_PAYS != "NL"){ 
            $error = "0-8";
          }
          // if($pays !== "Pays-bas" || $cb_PAYS != "NL"){
            //  $error = "0-17";
          //}
              if($pays !== "Pays-bas" and $cb_PAYS == "NL"){
              $error = "0-17";
          }
           if($pays === "Pays-bas" and $cb_PAYS != "NL"){
              $error = "0-19";
          }
          break;
          
          //********************************
          //on teste les envois postaux******
          //**********************************
          //si on choisit frais de livraison pays le pays choisi doit etre pays bas 
        case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
          if( $pays != "Pays-bas") {
            $error = "0-17";
          }
          break;
      
      //si on choisit frais de livraison pays le pays choisi doit etre belgique et les 3 point doivent etre remplit
        case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
          if($pays != "Belgique") {
            $error = "0-17";
          }
          if( !$adressepoint || !$cppoint || !$villepoint) {
            $error = "0-9";
          }
          break;
          
          //si on choisit frais de livraison pays le pays choisi doit etre belgique
        case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
        case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
          if($pays != "Belgique") {
            $error = "0-17";
          }
          break;
          
          //si on choisit frais de livraison pays le pays choisi doit etre luxembourg
        case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
          if($pays != "Luxembourg") {
            $error = "0-17";
          }
          break;
      
        case '(POSTE-ENVELLOPPE-FRANCE)4 euro(s)':
          if($pays != "France" ||  $cb_PAYS != "FR") {
            $error = "0-17";
          }
          break;
        //default:
          //aucune erreur detectée
        //$error = "Aucune erreur detectée "; //tu pourras retirer ce $error = quand tout marchera bien
      }
          //********************************
          //fin teste les envois postaux******
          //**********************************
      
      // AUTRE ERREUR
      //message alertes si autre probleme
      
      
      
      //je verifie si le bouton radio coche n'est pas 10
       if ($promotioncases =="10" )  
       { $error = "0-20";}  
      
      
      else if ($promotioncases =="20" && ($nouveau_prix_promo_int !=  $prix_total_int )  )
      {  $error = "0-12";}  
      
      
      
      // Dernier code d'erreur si c'est pas bon pour la commande
      else if (!$commande) {
        $error = "0-21";
      }  
      
      //une fois tous les tests terminés..
      // tu peux faire le echo de ton erreur si il y en a une... ou faire le reste de ton code
      
      if(!empty($error)){
        echo $error;
        //sinon on insert en bdd et ton envoi de mail
      }else{

      donc ce qui dérange dans mon code c'est ce switch

      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > flexi2202 Messages postés 3640 Date d'inscription   Statut Membre Dernière intervention  
       

      Si si.. on s'est très bien compris ... enfin.. moi.. j'ai très bien compris...

      Donc :

      Ton code, pour tes conditions, est découpé en trois morceaux

      - Un premier bloc de IF/ELSEIF ( qui rempli la variable $error )

      - Un switch ( qui, selon les conditions pourrais lui aussi remplir $error )

      - Et enfin, un troisième bloc IF qui rempli la variable $error

      Alors que sans le switch .. tu n'as plus qu'un seul bloc IF/ELSEIF ... il ne rempli donc qu'une seule fois la variable $error

      Donc.. soit tu appliques ce que je t'ai déjà répondu .. soit, tu ajoutes à ton deux bloc IF une condition supplémentaire permettant de vérifier si la variable $error est vide ou non..

      1