Problème avec mes conditions en php

Résolu

Bonjour a tous

cela fait deux jours que je me bat avec mes conditions en php dans mon bon de commande

l'utilisateur peux choisir entre plusieurs modes de livraison pour chaque pays 

par exemple pour la Belgique

(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)

(POSTE-ENVELLOPPE-belgique)1 euro(s)')
(POSTE-COLIS-BELGIQUE)6.50 euro(s)

(MONDIAL-RELAY-BELGIQUE)3 euro(s)

et ensuite il doit entrer ses coordonnées complètes et notamment son pays

Je souhaite afficher un message d'erreur lorsqu'il choisit par exemple un mode de livraison en belgique et que le pays de son adresse n'est pas belgique 

j'applique donc cette condition qui fonctionne

//message alertes si on choisit livraison poste belgique et que le pays n'est pas belgique 
else if ((($_POST["livraison"]=='(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)') 
or ($_POST["livraison"]=='(POSTE-ENVELLOPPE-belgique)1 euro(s)')
or ($_POST["livraison"]=='(POSTE-COLIS-BELGIQUE)6.50 euro(s)'))
&&($_POST["pays"]<>"Belgique")  )
{echo "0-18"; }

ensuite je veux vérifier que si il choisit mondial relay

que le pays de mondial relay ou le pays de son adresse  est bien Belgique 

donc j'applique cette condition 

//traitement envois mondial relay on controle le pays de poste et de mondial relay par au choix du mode de livraison 
//si on choisit mondial relay belgique et que le pays de mondial relay ou le pays postal pas de belgique
else if (($_POST["livraison"]=='(MONDIAL-RELAY-BELGIQUE)3 euro(s)') 
&&($_POST["pays"]<>"Belgique") 
or($_POST["cb_PAYS"]<>"BE") )
{echo "0-17"; }

Lorsque je mets ces deux conditions la première ne fonctionne plus mais la deuxième oui

c'est a dire pour la première condition 

si je choisi un mode de livraison par poste et que le pays n'est pas Belgique cela me retourne l'erreur echo 0-18 pour la première condition ce qui est bon 

par contre si la condition est vraie cela me retourne l'erreur 17

toujours pour la condition 1

j'en perds mon latin 

25 réponses

Résumé de la discussion

Problématique technique : dans un bon de commande en PHP, il faut empêcher qu'un mode de livraison belge soit validé lorsque le pays indiqué n'est pas Belgique et afficher un message d'erreur. Plusieurs points discutés portent sur les conditions vérifiant les livraisons spécifiques (POSTE-COLIS-BELGIQUE, MONDIAL-RELAY-BELGIQUE) et sur l'utilisation correcte des opérateurs logiques et des valeurs des pays. Des échanges révèlent qu'un dépassement des conditions peut provenir d'un code HTML échappant les opérateurs (&&), d'un défaut de var_dump sur une variable inexistante et d'un défaut de traitement du switch. Des corrections évoquées incluent la suppression du cas default du switch et l'amélioration de la validation des données, afin de déclencher le message d'erreur au bon moment.

Bobot (l’IA à votre service)
  1. voila c'est réglé enfin 

    bon ben je me doutais bien que était du  fait que je mettais NULL a la récupération des variables 

    Et comme elles ne sont pas renseigner dans le bon de commande elles restent donc a NULL au lieu et place de prendre une valeur et cela sql n'aime pas

    Alors pourquoi je n'ai pas mis 0 avant , tout simplement que je n'ai pas d'explication 

    Apparemment donc a présent tout fonctionne

    Je refais des tests et je reviens dire quoi 

    Je souhaiterais néanmoins remercier jordane et yg_be pour leurs pédagogie et patience 

    En même temps je suis très respectueux de l'aide fournie c'est la raison pour laquelle que même lorsque la solution fonctionne je reviens remercier 

    Car j'ai pu remarquer que bien souvent très souvent ou trop souvent les aides apportées restent sans réponses de la part des membres en difficultés 

    1. Contributeur

      Tu te trompes quand tu écris "cela sql n'aime pas".

      En réalité, c'est toi qui a donné ordre à SQL de refuser une valeur nulle pour ce champ.

      La prochaine fois, prend le temps de réfléchir à tes choix.

  2. je n'avais pas fait attention mais rien ne rentre dans ma base de donnée depuis que j'effectue ces modifications 

    1. Contributeur

      Tu n'as non plus fait attention au message de Jordane le 4 août 2022 à 12:19.

      Pas très respectueux de poser des questions et d'ignorer les réponses.

    2. @yg_be

      ah oui juste j'avais zapper cette requête avec les autres soucis 

      Donc cela proviendrait de ma requête 

      une belle erreur ..pourtant tout me semble correct ...

      Je viens d'essayer avec a version que j'ai garder mais non corriger par jordane qui possède exactement la même requête et tout ce passe bien 

      Aucune erreur dans cette ancienne version sauf que conditions pour les pays ne fonctionnent pas 

      Donc cela se passe ailleurs que dans la requête 

  3. il ne me reste plus que cette erreur  

    pourtant j'ai tout vérifier , mais je tombe de sommeil 

    je revérifie demain  

    Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'adressepoint' cannot be null Les datas : Array ( [0] => dd [1] => dd [2] => ddd1 [3] => 444 [4] => dd [5] => Belgique [6] => ddd@ze.com [7] => [8] => [9] => [10] => (POSTE-ENVELLOPPE-belgique)1 euro(s) [11] => [12] => [{"nom":2007,"prix":0.55,"quantite":"1","url":"https://phil.pecheperle.be/image-perles/perle-verre-peche-gardon-2007.JPG"}] [13] => 1.55 [14] => [15] => [16] => [17] => 1 [18] => 0.55 [19] => [20] => [21] => [22] => [23] => [24] => [25] => 2022/08/05 ) 1
    1. Contributeur

      Pourquoi as-tu configuré cette contrainte?

    2. @yg_be

      ah si je le savais ...j'essaye de comprendre ce message d'erreur

    3. @yg_be

      Merci pour la réponse pourtant elle n'est pas nul

      Voici une copie d'écran de ma base

    4. Contributeur
      @flexi2202

      Que comprends-tu du message d'erreur?

      Eh bien si, elle est nulle: quelle valeur y introduis-tu?

  4. ah ok je viens de comprendre ce qui provoque les erreurs je corrige demain 

    1. tiens tiens bizarre il me dit que mes variables ne sont pas définies

      je mets le massage mais je regarde a cela demain plus en détail 

      Notice: Undefined variable: livraison in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: message in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: prix_total in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: frais_fixe in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: remise in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: nouveau_prix in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: prix_depart in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: cb_ID in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: cb_Nom in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: cb_Adresse in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      
      Notice: Undefined variable: cb_VILLE in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 200
      Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'adressepoint' cannot be null Les datas : Array ( [0] => aa [1] => aa [2] => aaaaa4 [3] => 4444 [4] => dddd [5] => Belgique [6] => aaa@ze.com [7] => [8] => [9] => [10] => [11] => [12] => [{"nom":2007,"prix":0.55,"quantite":"1","url":"https://phil.pecheperle.be/image-perles/perle-verre-peche-gardon-2007.JPG"}] [13] => [14] => [15] => [16] => [17] => 1 [18] => [19] => [20] => [21] => [22] => [23] => [24] => [25] => 2022/08/05 )
      Notice: Undefined variable: message in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 224
      
      Notice: Undefined variable: cb_ID in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 228
      
      Notice: Undefined variable: cb_Nom in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 229
      
      Notice: Undefined variable: cb_Adresse in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 230
      
      Notice: Undefined variable: cb_VILLE in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 232
      
      Notice: Undefined variable: prix_depart in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 235
      
      Notice: Undefined variable: remise in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 236
      
      Notice: Undefined variable: nouveau_prix in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 237
      
      Notice: Undefined variable: frais_fixe in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 238
      
      Notice: Undefined variable: livraison in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 239
      
      Notice: Undefined variable: prix_total in /home/u434600775/domains/pecheperle.be/public_html/phil/panier/mail.php on line 240
      1

      voici mon code en entier 

      <?php
      
      error_reporting(E_ALL);
      // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
      ini_set("display_errors", 1);
      
      // Saisissez ici l'adresse mail du destinataire
      $destinataire = "s2@gmail.com";
      
      //on récupère PROPREMENT les variables AVANT de les utiliser
      $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
      $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
      $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
      $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
      $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
      $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
      $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
      $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
      $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
      $adressepoint = !empty($_POST["adressepoint"]) ? trim($_POST["adressepoint"]) : NULL;
      $cppoint = !empty($_POST["cppoint"]) ? trim($_POST["cppoint"]) : NULL;
      $villepoint = !empty($_POST["villepoint"]) ? trim($_POST["villepoint"]) : NULL;
      
      $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
      $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
      $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
      
      $error=null; //on inialise à null la variable error
      
      //on initialise quelques variables pour tester
      $date = date('Y/m/d');
      $b = $cp;
      $c = $cb_CP;
      $country = $pays;
      
      
      //debut des messages d'alertes
      //si quanditee est egal a 0
      if ($total_qte_bas == '0') {
        $error = "0-18";
      } else if ($detail_livraison == '() euro(s)') {
        //si le choix du mode de livraison est le champ cache on affiche une alerte
        $error = "0-15";
      }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";
      } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
        $error = "0-10";
      }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
        //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
        $error = "0-11";
      }elseif (!preg_match('#[\d ]#', ($adresse))) {
        //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
        $error = "0-13";
      }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
        //message erreur du choix du pays on doit absolument entrer un des pays autorises
        $error = "0-16";
      }
      
      
      /**
       * GESTION DE LA LIVRAISON
       */
      
      
      switch($detail_livraison ){
        case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
          if(!filter_var($c, FILTER_VALIDATE_INT)){
            $error = "0-8";
          }
          if($pays !== "Belgique" || $cb_PAYS != "BE"){
              $error = "0-17";
          }
          break;
        case '(mondial relay-FRANCE)4 euro(s)':
          if(!filter_var($c, FILTER_VALIDATE_INT)){
            $error = "0-8";
          }
          break;
        case '(mondial relay-LUXEMBOURG)3 euro(s)':
          if(!filter_var($c, FILTER_VALIDATE_INT)){
            $error = "0-8";
          }
          break;
        case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
          if(!filter_var($c, FILTER_VALIDATE_INT)){
            $error = "0-8";
          }
          if($pays != "Pays-bas" || $cb_PAYS != "NL") {
            $error = "0-17";
          }
          break;
        case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
          if( $pays != "Pays-bas") {
            $error = "0-17";
          }
          break;
      
        case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
          if($pays != "Belgique") {
            $error = "0-17";
          }
          if( !$adressepoint || !$cppoint || !$villepoint) {
            $error = "0-9";
          }
          break;
        case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
        case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
          if($pays != "Belgique") {
            $error = "0-17";
          }
          break;
        case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
          if($pays != "Luxembourg") {
            $error = "0-17";
          }
          break;
        case '(mondial relay-LUXEMBOURG)3 euro(s)':
          if($pays != "Luxembourg" || $cb_PAYS != "LU") {
            $error = "0-17";
          }
          break;
        case '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)':
          if($pays != "France") {
            $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
      }
      
      // AUTRE ERREUR
      //message alertes si autre probleme
      if (!$commande) {
        $error = "0-21";
      }  // code d'erreur si c'est pas bon pour la commande
      
      
      
      //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;
      }else{
          
        //ici ton insert en bdd et ton envoi de mail
        
      // je commence a decompresser commande pour recuperer les champs   
      $data = $commande;
      $decoded = json_decode($data);
      $mailData = "";
      foreach ($decoded as $curr_element) {
          $fieldName = $curr_element->nom;
          $fieldQty = $curr_element->quantite;
          $fieldPrice = $curr_element->prix;
          $fieldimg = $curr_element->url;
          if ( $fieldQty != 0 ) {
              if ($fieldPrice != 0) {
                 $input =  '<div style ="border:solid;"> 
                 <div style ="float: left;width: 50%;"> Numéro</div >
                 <div style =""> ' . $fieldName . '</div>
                  <div style ="float: left;width: 50%;"> qanditée</div >
                 <div style =""> ' . $fieldQty . '</div >
                 <div style ="float: left;width: 50%;"> Prix unitaire</div >
                 <div style ="">  ' . $fieldPrice . 'euros</div>
                 <div style ="float: left;width: 50%;"> Image</div >
                <div style =""> <img src=""' . $fieldimg . '" alt="HTML tutorial" style="width:150px;height:150px;"></div>
                <div style ="float: left;width:50%"> Prix total pour le numéro de perle ' . $fieldName . '</div >
                
                 <div style ="">  ' . ($fieldPrice * $fieldQty) . 'euros </div></div><br><br><br>';
                  $mailData .= $input;
                  }
          } 
      }
      
      //debut insertion base de donnee
      include('base.php');
      
      //préparation de la requête et des variables
       $sql = "INSERT INTO commander (nom, prenom,adresse, cp,ville,pays,email,adressepoint,cppoint,villepoint,livraison,message,commande,prix_total,frais_fixe,remise ,nouveau_prix,total_qte_bas,prix_depart,cb_ID,cb_Nom,cb_Adresse,cb_CP,cb_VILLE,cb_PAYS,date ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
      
       $datas = array($nom , $prenom ,$adresse, $cp, $ville,$pays,$email,$adressepoint,$cppoint,$villepoint,$livraison, $message, $commande ,$prix_total,$frais_fixe,$remise,$nouveau_prix,$total_qte_bas,$prix_depart,$cb_ID,$cb_Nom,$cb_Adresse,$cb_CP,$cb_VILLE,$cb_PAYS,$date);
      
      //Execution de la requete
      try{
        $requete = $bdd -> prepare($sql) ;
        $requete->execute($datas) ;
      }catch(Exception $e){
        // en cas d'erreur :
         echo " Erreur ! ".$e->getMessage();
         echo " Les datas : " ;
        print_r($datas);
      }
      $multiplicateur=3;
      $total_perle=$total_qte_bas*$multiplicateur;
      
      $sujet = 'Commande reçue';
      $messagez = "
      Nom:<span style='color:red;font-weight: bold;'> ".$nom."</span><br>
      Prénom: <span style='color:red;font-weight: bold;'> ".$prenom."</span><br>
      Code postal: <span style='color:red;font-weight: bold;'> ".$cp."</span><br>
      adresse:<span style='color:red;font-weight: bold;'> ".$adresse."</span><br>
      Ville: <span style='color:red;font-weight: bold;'> ".$ville."</span><br>
      pays: <span style='color:red;font-weight: bold;'> ".$pays."</span><br>
      Adresse e-Mail:<span style='color:red;font-weight: bold;'> ".$email."</span><br>
      Message:<span style='color:red;font-weight: bold;'> ".$message."</span><br>
      adressepoint:<span style='color:red;font-weight: bold;'> ".$adressepoint."</span><br>
      cppoint:<span style='color:red;font-weight: bold;'> ".$cppoint."</span><br>
      villepoint::<span style='color:red;font-weight: bold;'> ".$villepoint."</span><br>
      ID de mondial_relay:<span style='color:red;font-weight: bold;'> ".$cb_ID."</span><br>
      nom de mondial_relay:<span style='color:red;font-weight: bold;'> ".$cb_Nom."</span><br>
      adresse de mondial_relay::<span style='color:red;font-weight: bold;'> ".$cb_Adresse."</span><br>
      code postal de mondial_relay:<span style='color:red;font-weight: bold;'> ".$cb_CP."</span><br>
      ville de mondial_relay:<span style='color:red;font-weight: bold;'> ".$cb_VILLE."</span><br>
      pays de mondial_relay:<span style='color:red;font-weight: bold;'> ".$cb_PAYS."</span><br>
      Total absolu de sachets :<span style='color:red;font-weight: bold;'> ".$total_qte_bas."</span><br>
      prix depart :<span style='color:red;font-weight: bold;'> ".$prix_depart."</span>euros<br>
      Remise :<span style='color:red;font-weight: bold;'> ".$remise ."</span>euros<br>
      nouveau prix :<span style='color:red;font-weight: bold;'> ".$nouveau_prix."</span>euros<br>
      frais fixe:<span style='color:red;font-weight: bold;'> ".$frais_fixe."</span>euros<br>
      Mode de livraison: <span style='color:red;font-weight: bold;'> ".$livraison."</span>euros<br>
      Le prix Total :<span style='color:red;font-weight: bold;'> ".$prix_total."</span>euros";
      
      $headers = "From: \"Commande\"<".$destinataire.">\n";
      $headers .= "Reply-To: ".$destinataire."\n";
      $headers .= "Content-Type: text/html; charset=\"utf-8\"";
      
       if(mail($destinataire,$sujet,$messagez,$headers))
        {
          echo "1";
         }
        else
        {
          echo "0"; // dernière erreur possible, la fonction mail a échoué
        }
      }
      
      ?>
      1. Bonsoir jordane 

        Ce jour j'ai encore chercher pourquoi je ne voyais pas venir ce pop pu de paiement paypal lorsque je valide la commande

        j'avais essayé avec le code que tu m'as offert en supprimant les 3 lignes , mais comme je ne voyais toujours pas apparaitre la pop up mondal avec le module paypal arrivé 

        j'avais pris l'initiative de supprimer la $error

        J'ai donc tout remis comme neuf

        je revois bien les mails , toujours pas la pop up du modal avec le module de paypal

        <?php
        
        error_reporting(E_ALL);
        // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
        ini_set("display_errors", 1);
        
        // Saisissez ici l'adresse mail du destinataire
        $destinataire = "sanphil2@g";
        
        //on récupère PROPREMENT les variables AVANT de les utiliser
        $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
        $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
        $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
        $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
        $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
        $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
        $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
        $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
        $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
        $adressepoint = !empty($_POST["adressepoint"]) ? trim($_POST["adressepoint"]) : NULL;
        $cppoint = !empty($_POST["cppoint"]) ? trim($_POST["cppoint"]) : NULL;
        $villepoint = !empty($_POST["villepoint"]) ? trim($_POST["villepoint"]) : NULL;
        
        $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
        $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
        $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
        
        $error=null; //on inialise à null la variable error
        
        //on initialise quelques variables pour tester
        $date = date('Y/m/d');
        $b = $cp;
        $c = $cb_CP;
        $country = $pays;
        
        
        //debut des messages d'alertes
        //si quanditee est egal a 0
        if ($total_qte_bas == '0') {
          $error = "0-18";
        } else if ($detail_livraison == '() euro(s)') {
          //si le choix du mode de livraison est le champ cache on affiche une alerte
          $error = "0-15";
        }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";
        } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
          $error = "0-10";
        }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
          //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
          $error = "0-11";
        }elseif (!preg_match('#[\d ]#', ($adresse))) {
          //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
          $error = "0-13";
        }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
          //message erreur du choix du pays on doit absolument entrer un des pays autorises
          $error = "0-16";
        }
        
        
        /**
         * GESTION DE LA LIVRAISON
         */
        
        
        switch($detail_livraison ){
          case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
            if(!filter_var($c, FILTER_VALIDATE_INT)){
              $error = "0-8";
            }
            if($pays !== "Belgique" || $cb_PAYS != "BE"){
                $error = "0-17";
            }
            break;
          case '(mondial relay-FRANCE)4 euro(s)':
            if(!filter_var($c, FILTER_VALIDATE_INT)){
              $error = "0-8";
            }
            break;
          case '(mondial relay-LUXEMBOURG)3 euro(s)':
            if(!filter_var($c, FILTER_VALIDATE_INT)){
              $error = "0-8";
            }
            break;
          case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
            if(!filter_var($c, FILTER_VALIDATE_INT)){
              $error = "0-8";
            }
            if($pays != "Pays-bas" || $cb_PAYS != "NL") {
              $error = "0-17";
            }
            break;
          case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
            if( $pays != "Pays-bas") {
              $error = "0-17";
            }
            break;
        
          case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
            if($pays != "Belgique") {
              $error = "0-17";
            }
            if( !$adressepoint || !$cppoint || !$villepoint) {
              $error = "0-9";
            }
            break;
          case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
          case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
            if($pays != "Belgique") {
              $error = "0-17";
            }
            break;
          case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
            if($pays != "Luxembourg") {
              $error = "0-17";
            }
            break;
          case '(mondial relay-LUXEMBOURG)3 euro(s)':
            if($pays != "Luxembourg" || $cb_PAYS != "LU") {
              $error = "0-17";
            }
            break;
          case '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)':
            if($pays != "France") {
              $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
        }
        
        // AUTRE ERREUR
        //message alertes si autre probleme
        if (!$commande) {
          $error = "0-21";
        }  // code d'erreur si c'est pas bon pour la commande
        
        
        
        //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;
        }else{
          //ici ton insert en bdd et ton envoi de mail
        1. Modérateur

          Et donc... Que t'affiche la console ? L'onglet réponse de ton ajax ?

      2. le code du pop up de paypal est contenu dans un modal d'erreur qui est le premier de la liste 

        Qui est donc censé s'afficher si aucune erreur n'est trouvé 

        La variable commande  quand a elle regroupe l'ensemble de la commande que l'utilisateur a réalisé

        1. alors que normalement 

          il devrait déjà afficher une erreur

          if ($total_qte_bas == '0') {
            $error = "0-18";
          1. merci pour le suivi et l'aide jordane 

            oui car tu as déjà entrer des données 

            Mais fais un essais sans rien indiquer comme donnée et clic sur passer la commande 

            dans ce cas de figure voici ce que j'ai pour les deux onglets

            1. Modérateur

              ben oui..

              As tu lu les commentaires dans le code que je t'ai donné ?

              As tu essayé de le comprendre ?

              Si la réponse est OUI au deux interrogations .. et vu ce qui s'affiche dans l'onglet REPONSE de ton appel AJAX .. il aurait alors facile de trouver qu'il fallait simplement retirer le DEFAULT  du switch

              Autrement dit, supprime ces lignes de code

              default:
                  //aucune erreur detectée
                  $error = "Aucune erreur detectée "; //tu pourras retirer ce $error = quand tout marchera bien
            2. @jordane45

              oui bien sur que j'avais lu mais comme cela ne fonctionnait pas je ne l'avais pas retirer 

              oui bien sur que j'ai essaye de le comprendre 

              tu as initialise une variable error pour  les erreurs éventuelles a chaque étape

              A présent tout semble  fonctionner pour les vérifications

              Mais le pop up de paypal qui doit s'afficher  une fois que tout est correct pour le paiement ne s'affiche pas ...

              je suppose que cela est du a ces lignes

              que je dois enlever le $error=

              if (!$commande) {
                $error = "0-21";
              } 
            3. Modérateur
              @flexi2202

              il n'y a pas de raisons de la retirer, ça c'est une de tes conditions à toi au départ ...

            4. @jordane45

              oupps désolé surement la fatigue , je n'ai pas beaucoup dormi avec ce code  

              voici le code épuré des errors 

              Mais le pop up de payapal qui doit être afficher pour le paiement une fois que tout est correct ne s'affiche pas 

              <?php
              
              error_reporting(E_ALL);
              // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
              ini_set("display_errors", 1);
              
              // Saisissez ici l'adresse mail du destinataire
              $destinataire = "sanphil2202@gmail.com";
              
              //on récupère PROPREMENT les variables AVANT de les utiliser
              $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
              $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
              $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
              $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
              $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
              $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
              $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
              $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
              $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
              $adressepoint = !empty($_POST["adressepoint"]) ? trim($_POST["adressepoint"]) : NULL;
              $cppoint = !empty($_POST["cppoint"]) ? trim($_POST["cppoint"]) : NULL;
              $villepoint = !empty($_POST["villepoint"]) ? trim($_POST["villepoint"]) : NULL;
              
              $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
              $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
              $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
              
              $error=null; //on inialise à null la variable error
              
              //on initialise quelques variables pour tester
              $date = date('Y/m/d');
              $b = $cp;
              $c = $cb_CP;
              $country = $pays;
              
              
              //debut des messages d'alertes
              //si quanditee est egal a 0
              if ($total_qte_bas == '0') {
                "0-18";
              } else if ($detail_livraison == '() euro(s)') {
                //si le choix du mode de livraison est le champ cache on affiche une alerte
                "0-15";
              }else if (empty($nom)) {
                 "0-1";
              } else if (empty($prenom)) {
                 "0-2";
              } else if (empty($adresse)) {
                 "0-3";
              } else if (empty($cp)) {
                "0-4";
              } else if (empty($ville)) {
                "0-5";
              } else if (empty($pays)) {
                 "0-6";
              } else if (empty($email)) {
                 "0-7";
              } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
                 "0-10";
              }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
                //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
                 "0-11";
              }elseif (!preg_match('#[\d ]#', ($adresse))) {
                //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
                 "0-13";
              }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
                //message erreur du choix du pays on doit absolument entrer un des pays autorises
                 "0-16";
              }
              
              
              /**
               * GESTION DE LA LIVRAISON
               */
              
              
              switch($detail_livraison ){
                case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
                  if(!filter_var($c, FILTER_VALIDATE_INT)){
                    "0-8";
                  }
                  if($pays !== "Belgique" || $cb_PAYS != "BE"){
                      "0-17";
                  }
                  break;
                case '(mondial relay-FRANCE)4 euro(s)':
                  if(!filter_var($c, FILTER_VALIDATE_INT)){
                     "0-8";
                  }
                  break;
                case '(mondial relay-LUXEMBOURG)3 euro(s)':
                  if(!filter_var($c, FILTER_VALIDATE_INT)){
                    "0-8";
                  }
                  break;
                case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
                  if(!filter_var($c, FILTER_VALIDATE_INT)){
                   "0-8";
                  }
                  if($pays != "Pays-bas" || $cb_PAYS != "NL") {
                    "0-17";
                  }
                  break;
                case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
                  if( $pays != "Pays-bas") {
                     "0-17";
                  }
                  break;
              
                case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
                  if($pays != "Belgique") {
                    "0-17";
                  }
                  if( !$adressepoint || !$cppoint || !$villepoint) {
                     "0-9";
                  }
                  break;
                case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
                case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
                  if($pays != "Belgique") {
                 "0-17";
                  }
                  break;
                case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
                  if($pays != "Luxembourg") {
                   "0-17";
                  }
                  break;
                case '(mondial relay-LUXEMBOURG)3 euro(s)':
                  if($pays != "Luxembourg" || $cb_PAYS != "LU") {
                     "0-17";
                  }
                  break;
                case '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)':
                  if($pays != "France") {
                     "0-17";
                  }
                  break;
                case '(POSTE-ENVELLOPPE-FRANCE)4 euro(s)':
                  if($pays != "France" ||  $cb_PAYS != "FR") {
                     "0-17";
                  }
                  break;
               //default:
                  //aucune erreur detectée
                // $error = "Aucune erreur detectée "; //tu pourras retirer ce $error = quand tout marchera bien
              }
              
              // AUTRE ERREUR
              //message alertes si autre probleme
              if (!$commande) {
                "0-21";
              }  // code d'erreur si c'est pas bon pour la commande
              
              //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;
              //}
              else{
                //ici ton insert en bdd et ton envoi de mail
            5. Modérateur
              @flexi2202

              voici le code épuré des errors 

              hein ??

              Mais non !

              Il faut la variable $error ... sinon ça ne fera strictement rien !

              Je t'ai donné le code corrigé .. pourquoi l'as tu changé ??

          2. Merci pour le code jordane 

            Mais malheureusement si je ne rentre aucune info et que je clique sur valider la commande 

            De nouveau aucun modal n'apparait 

            et dans la console au niveau des erreurs 

            Aucune erreur détectée

            1. Modérateur

              Perso.. aucun souci de mon côté...

              Tu as quoi dans la console ?

              Qu'affiche l'onglet "requête" de ton appel ajax ? et l'onglet reponse ?

          3. Modérateur

            yg_be .. pas besoin de ce que tu lui demandes .. toutes les infos nécessaires se trouves dans la console ..

            bref,

            Voici à quoi pourrait ressembler ton code :

            <?php
            
            error_reporting(E_ALL);
            // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
            ini_set("display_errors", 1);
            
            // Saisissez ici l'adresse mail du destinataire
            $destinataire = "***@***";
            
            //on récupère PROPREMENT les variables AVANT de les utiliser
            $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
            $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
            $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
            $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
            $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
            $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
            $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
            $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
            $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
            $adressepoint = !empty($_POST["adressepoint"]) ? trim($_POST["adressepoint"]) : NULL;
            $cppoint = !empty($_POST["cppoint"]) ? trim($_POST["cppoint"]) : NULL;
            $villepoint = !empty($_POST["villepoint"]) ? trim($_POST["villepoint"]) : NULL;
            
            $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
            $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
            $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
            
            $error=null; //on inialise à null la variable error
            
            //on initialise quelques variables pour tester
            $date = date('Y/m/d');
            $b = $cp;
            $c = $cb_CP;
            $country = $pays;
            
            
            //debut des messages d'alertes
            //si quanditee est egal a 0
            if ($total_qte_bas == '0') {
              $error = "0-18";
            } else if ($detail_livraison == '() euro(s)') {
              //si le choix du mode de livraison est le champ cache on affiche une alerte
              $error = "0-15";
            }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";
            } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
              $error = "0-10";
            }else if ($b != filter_var($b, FILTER_VALIDATE_INT)) {
              //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
              $error = "0-11";
            }elseif (!preg_match('#[\d ]#', ($adresse))) {
              //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
              $error = "0-13";
            }else if ( $country != "Belgique"  && $country != "Luxembourg"  &&  $country != "France"  &&  $country != "Pays-bas" ) {
              //message erreur du choix du pays on doit absolument entrer un des pays autorises
              $error = "0-16";
            }
            
            
            /**
             * GESTION DE LA LIVRAISON
             */
            
            
            switch($detail_livraison ){
              case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
                if(!filter_var($c, FILTER_VALIDATE_INT)){
                  $error = "0-8";
                }
                if($pays !== "Belgique" || $cb_PAYS != "BE"){
                    $error = "0-17";
                }
                break;
              case '(mondial relay-FRANCE)4 euro(s)':
                if(!filter_var($c, FILTER_VALIDATE_INT)){
                  $error = "0-8";
                }
                break;
              case '(mondial relay-LUXEMBOURG)3 euro(s)':
                if(!filter_var($c, FILTER_VALIDATE_INT)){
                  $error = "0-8";
                }
                break;
              case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
                if(!filter_var($c, FILTER_VALIDATE_INT)){
                  $error = "0-8";
                }
                if($pays != "Pays-bas" || $cb_PAYS != "NL") {
                  $error = "0-17";
                }
                break;
              case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
                if( $pays != "Pays-bas") {
                  $error = "0-17";
                }
                break;
            
              case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
                if($pays != "Belgique") {
                  $error = "0-17";
                }
                if( !$adressepoint || !$cppoint || !$villepoint) {
                  $error = "0-9";
                }
                break;
              case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
              case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
                if($pays != "Belgique") {
                  $error = "0-17";
                }
                break;
              case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
                if($pays != "Luxembourg") {
                  $error = "0-17";
                }
                break;
              case '(mondial relay-LUXEMBOURG)3 euro(s)':
                if($pays != "Luxembourg" || $cb_PAYS != "LU") {
                  $error = "0-17";
                }
                break;
              case '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)':
                if($pays != "France") {
                  $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
            }
            
            // AUTRE ERREUR
            //message alertes si autre probleme
            if (!$commande) {
              $error = "0-21";
            }  // code d'erreur si c'est pas bon pour la commande
            
            
            
            //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;
            }else{
              //ici ton insert en bdd et ton envoi de mail
              
            }

            1. voila il manquait un caractère dans la page

              voici les var dump mais aucun modals ne s'affichent

              0-18
              
              array(22) {
                ["nom"]=>
                string(3) "nom"
                ["prenom"]=>
                string(6) "prenom"
                ["adresse"]=>
                string(7) "adresse"
                ["cp"]=>
                string(4) "code"
                ["email"]=>
                string(5) "email"
                ["adressepoint"]=>
                string(0) ""
                ["cppoint"]=>
                string(0) ""
                ["villepoint"]=>
                string(0) ""
                ["commande"]=>
                string(2) "[]"
                ["prix_total"]=>
                string(4) "3.00"
                ["prix_depart"]=>
                string(1) "0"
                ["total_qte_bas"]=>
                string(1) "0"
                ["message"]=>
                string(0) ""
                ["ville"]=>
                string(5) "ville"
                ["pays"]=>
                string(4) "pays"
                ["detail_livraison"]=>
                string(33) "(MONDIAL-RELAY-BELGIQUE)3 euro(s)"
                ["cb_ID"]=>
                string(6) "010261"
                ["cb_Nom"]=>
                string(11) "UNIQUE COIN"
                ["cb_Adresse"]=>
                string(28) "89 BOULEVARD MONTEBELLO null"
                ["cb_CP"]=>
                string(5) "59000"
                ["cb_VILLE"]=>
                string(5) "LILLE"
                ["cb_PAYS"]=>
                string(2) "FR"
              }
              0-17 Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'adressepoint' cannot be null Les datas : Array ( [0] => nom [1] => prenom [2] => adresse [3] => code [4] => ville [5] => pays [6] => email [7] => [8] => [9] => [10] => (MONDIAL-RELAY-BELGIQUE)3 euro(s) [11] => [12] => [] [13] => 3.00 [14] => [15] => [16] => [17] => 0 [18] => 0 [19] => 010261 [20] => [21] => 89 BOULEVARD MONTEBELLO null [22] => 59000 [23] => LILLE [24] => FR [25] => 2022/08/04 ) 1 
              1. Modérateur

                Donc :

                On a bien le var_dump

                On a bien une erreur 0-17

                et en complément... tu as une jolie erreur sur ta requête SQL..

                il serait sûrement utile/interessant .. de ne pas poursuivre le script lorsque tu rencontres une erreur...  non ?

              2. Contributeur

                Il est inutile de nous montrer ce qu'affichent les var_dump sans nous montrer le code php correspondant à cet essai.
                N'hésite pas à nous dire quel modal tu pensais obtenir...

            2. lorsque je valide la commande je  la reçois bien par mail mais aucun modals d'erreur ne s'affichent pour me signaler les erreurs éventuelles 

              1. j'ai donc choisi la livraison par mondial relay 

                tous les champs ont été remplit avec des erreurs qui auraient du déclenché les modals d'erreur

                Mais aucun ne s'est affichés 

                voici ce que donne les var dumps

                1. Modérateur

                  là.. il n'y a pas le var_dump

                  es-tu sûr que tu as déplié la bonne ligne dans la console ? ( après avoir cliqué sur le bouton pour soumettre la commande) ?

                2. Modérateur
                  @yg_be

                  en effet, son script mail.php retourne une belle erreur 500 ...

                3. @jordane45

                  j'ai choisi console 
                  puis j'ai deplie le POST https:....
                  puis j'ai regarde dans l'onglet reponse

                4. @yg_be

                  yg_be 

                  Avant la modif faite par jaordane les modals s'affichaient bien 

                  Sauf que j'avais des soucis avec la vérification de la livraison 

              2. je viens de refaire un essai avec ton nouveau code mais le soucis est pareil 

                aucun message d'erreur de modals ne s'affiche si une erreur est présente 

                1. Modérateur

                  et donc.. que t'affiche le var_dump ??

                  et quel echo d'erreur s'affiche (si il y en a un ) ?

              3. oui en effet c'est en ajax et je viens bien de voir les var dump dans l'onglet réponse

                Mais comme tu peux le constater si tu oublies un champ quelconque cela n'affiche aucun modal d'erreur

                Je viens de recevoir par mail tes différents essais mais avec des manquements au niveaux des informations qui auraient du être bloquées par les modals d'erreur

                Merci pour le code ,je vais tester cela va peut être afficher les modals en cas d'erreur de champs oublié

                1. oui oui le var dump de la variable je l'avais remarqué et donc je l 'avais déplacée en dessous des récupérations des variables 

                  lorsque je remets les else if le code passe bien 

                  voici le lien , mais depuis la modification la page prends beaucoup de temps a se charger

                  https://phil.pecheperle.be/panier/index270422.php

                  1. Modérateur

                    Je ne constate aucune erreur..

                    Mais dis moi.. tu appelle ce script en AJAX ?

                    Dans ce cas.. il faut regarder dans la CONSOLE ce qui s'affiche... car en effet, ça ne mettra rien directement sur ta page !

                  2. Modérateur
                    @jordane45

                    au passage, voici encore une petite amélioration de ton code

                    <?php
                    
                    error_reporting(E_ALL);
                    // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
                    ini_set("display_errors", 1);
                    
                    // Saisissez ici l'adresse mail du destinataire
                    $destinataire = "***@***";
                    
                    //on récupère PROPREMENT les variables AVANT de les utiliser
                    $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
                    $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
                    $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
                    $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
                    $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
                    $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
                    $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
                    $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
                    $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
                    $adressepoint = !empty($_POST["adressepoint"]) ? trim($_POST["adressepoint"]) : NULL;
                    $cppoint = !empty($_POST["cppoint"]) ? trim($_POST["cppoint"]) : NULL;
                    $villepoint = !empty($_POST["villepoint"]) ? trim($_POST["villepoint"]) : NULL;
                    
                    $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
                    $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
                    $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
                    
                    //on initialise quelques variables pour tester
                    $date = date('Y/m/d');
                    $b = $cp;
                    $c = $cb_CP;
                    $country = $pays;
                    
                    //debut des messages d'alertes
                    //si quanditee est egal a 0
                    if ($total_qte_bas == '0') {
                      echo "0-18";
                    } else if ($detail_livraison == '() euro(s)') {
                      //si le choix du mode de livraison est le champ cache on affiche une alerte
                      echo "0-15";
                    }else if (empty($nom)) {
                      echo "0-1";
                    } else if (empty($prenom)) {
                      echo "0-2";
                    } else if (empty($adresse)) {
                      echo "0-3";
                    } else if (empty($cp)) {
                      echo "0-4";
                    } else if (empty($ville)) {
                      echo "0-5";
                    } else if (empty($pays)) {
                      echo "0-6";
                    } else if (empty($email)) {
                      echo "0-7";
                    } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
                      echo "0-10";
                    }else if ($b <> filter_var($b, FILTER_VALIDATE_INT)) {
                      //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
                      echo "0-11";
                    }elseif (!preg_match('#[\d ]#', ($adresse))) {
                      //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
                      echo "0-13";
                    }else if ( $country <> "Belgique"  && $country <> "Luxembourg"  &&  $country <> "France"  &&  $country <> "Pays-bas" ) {
                      //message erreur du choix du pays on doit absolument entrer un des pays autorises
                      echo "0-16";
                    }
                    
                    
                    /**
                     * GESTION DE LA LIVRAISON
                     */
                    echo "<pre>";
                    var_dump($_POST);
                    echo "</pre>";
                    
                    switch($detail_livraison ){
                      case '(MONDIAL-RELAY-BELGIQUE)3 euro(s)':
                        if(!filter_var($c, FILTER_VALIDATE_INT)){
                          echo "0-8";
                        }
                        if($pays !== "Belgique" || $cb_PAYS <> "BE"){
                            echo "0-17";
                        }
                        break;
                      case '(mondial relay-FRANCE)4 euro(s)':
                        if(!filter_var($c, FILTER_VALIDATE_INT)){
                          echo "0-8";
                        }
                        break;
                      case '(mondial relay-LUXEMBOURG)3 euro(s)':
                        if(!filter_var($c, FILTER_VALIDATE_INT)){
                          echo "0-8";
                        }
                        break;
                      case '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)':
                        if(!filter_var($c, FILTER_VALIDATE_INT)){
                          echo "0-8";
                        }
                        if($pays <> "Pays-bas" || $cb_PAYS <> "NL") {
                          echo "0-17";
                        }
                        break;
                      case '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)':
                        if( $pays <> "Pays-bas") {
                          echo "0-17";
                        }
                        break;
                    
                      case '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)':
                        if($pays <> "Belgique") {
                          echo "0-17";
                        }
                        if( !$adressepoint || !$cppoint || !$villepoint) {
                          echo "0-9";
                        }
                        break;
                      case '(POSTE-ENVELLOPPE-belgique)1 euro(s)':  
                      case '(POSTE-COLIS-BELGIQUE)6.50 euro(s)':
                        if($pays <> "Belgique") {
                          echo "0-17";
                        }
                        break;
                      case '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)':
                        if($pays <> "Luxembourg") {
                          echo "0-17";
                        }
                        break;
                      case '(mondial relay-LUXEMBOURG)3 euro(s)':
                        if($pays <> "Luxembourg" || $cb_PAYS <> "LU") {
                          echo "0-17";
                        }
                        break;
                      case '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)':
                        if($pays <> "France") {
                          echo "0-17";
                        }
                        break;
                      case '(POSTE-ENVELLOPPE-FRANCE)4 euro(s)':
                        if($pays <> "France" ||  $cb_PAYS <> "FR") {
                          echo "0-17";
                        }
                        break;
                      default:
                        //aucune erreur detectée
                        echo "Aucune erreur detectée "; //tu pourras retirer ce echo quand tout marchera bien
                    }
                    
                    // AUTRE ERREUR
                    //message alertes si autre probleme
                    if (!$commande) {
                      echo "0-21";
                    }  // code d'erreur si c'est pas bon pour la commande
                2. j'ai trouve ce qui ne fonctionnait pas 

                  si je laisse ce morceau de code avec le if la bouton valider la commande refuse de faire son boulot

                  /**
                   * GESTION DE LA LIVRAISON
                   */
                  echo "<pre>";
                  var_dump($_POST);
                  echo "</pre>";
                  
                  //on a pas d'autres choix pour vérifier la valeur du champ que de se servir du code postal puisque les champs sont deja preremplis avec les donnees de mondial relay
                  //message alertes si on choisit mondial relay france on afficche une erreur si code postal pas correct
                  if ($detail_livraison == '(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $c <> filter_var($c, FILTER_VALIDATE_INT)) {
                    echo "0-8";
                  }
                  1. Modérateur

                    Déjà, à la ligne 8 du code précédent .. tu fais un var_dump sur une variable qui n'existe pas...

                    Ensuite, je ne vois pas en quoi le var dump que moi je t'ai écrit bloquerait quoi que ce soit ..

                    Ta page est en ligne ? Tu peux me donner le lien ?

                3. Merci pour l'aide jordane 

                  oui c'est vrai que je contrôle tout 

                  car ce sont des personnes âgées qui passent commande et que des fois ils choisissent mondial relay mais ne remplisse pas les champs 

                  Merci pour la correction 

                  Mais lorsque je clique sur mon bouton valider la commande aucune vérification des erreurs n'est effectuée

                  voici mon code corrige qui contrôle les erreurs 

                  <?php 
                  error_reporting(E_ALL);
                  // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
                  ini_set("display_errors", 1);
                  
                  // Saisissez ici l'adresse mail du destinataire
                  $destinataire = "sanphil2202@gmail.com";
                  var_dump($detail_livraison);
                  
                  //on récupère PROPREMENT les variables AVANT de les utiliser
                  $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
                  $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
                  $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
                  $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
                  $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
                  $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
                  $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
                  $adressepoint = !empty($_POST["adressepoint"]) ? trim($_POST["adressepoint"]) : NULL;
                  $cppoint = !empty($_POST["cppoint"]) ? trim($_POST["cppoint"]) : NULL;
                  $villepoint = !empty($_POST["villepoint"]) ? trim($_POST["villepoint"]) : NULL;
                  $cb_ID = !empty($_POST["cb_ID"]) ? trim($_POST["cb_ID"]) : NULL;
                  $cb_Nom  = !empty($_POST["cb_Nom "]) ? trim($_POST["cb_Nom "]) : NULL;
                  $cb_Adresse  = !empty($_POST["cb_Adresse"]) ? trim($_POST["cb_Adresse"]) : NULL;
                  $cb_VILLE = !empty($_POST["cb_VILLE"]) ? trim($_POST["cb_VILLE"]) : NULL;
                  $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
                  $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
                  $message = !empty($_POST["message"]) ? trim($_POST["message"]) : NULL;
                  $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
                  $prix_total = isset($_POST["prix_total"]) ? trim($_POST["prix_total"]) : NULL;
                  $frais_fixe = isset($_POST["frais_fixe"]) ? trim($_POST["frais_fixe"]) : NULL;
                  $remise = isset($_POST["remise"]) ? trim($_POST["remise"]) : NULL;
                  $nouveau_prix = isset($_POST["nouveau_prix"]) ? trim($_POST["nouveau_prix"]) : NULL;
                  $prix_depart = isset($_POST["prix_depart"]) ? trim($_POST["prix_depart"]) : NULL;
                  $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
                  $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
                  
                  //on initialise quelques variables 
                  $date=date('Y/m/d'); 
                  $b = ($_POST["cp"]);
                  $c = ($_POST["cb_CP"]);
                  $country=($_POST["pays"]);
                  
                  //debut des messages d'alertes
                  //si quanditee est egal a 0
                  if ($total_qte_bas == '0') {
                    echo "0-18";
                  }
                  
                  //si le choix du mode de livraison est le champ cache on affiche une alerte
                  else if ($detail_livraison == '() euro(s)') {
                    echo "0-15";
                  }
                  
                  //on teste les donnees postale
                  else if (empty($nom)) {
                    echo "0-1";
                  } else if (empty($prenom)) {
                    echo "0-2";
                  } else if (empty($adresse)) {
                    echo "0-3";
                  } else if (empty($cp)) {
                    echo "0-4";
                  } else if (empty($ville)) {
                    echo "0-5";
                  } else if (empty($pays)) {
                    echo "0-6";
                  } else if (empty($email)) {
                    echo "0-7";
                  } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
                    echo "0-10";
                  }
                  
                  //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
                  else if ($b <> filter_var($b, FILTER_VALIDATE_INT)) {
                    echo "0-11";
                  }
                  
                  //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
                  elseif (!preg_match('#[\d ]#', ($adresse))) {
                    echo "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")) {
                    echo "0-16";
                  }
                  
                  /**
                   * GESTION DE LA LIVRAISON
                   */
                  echo "<pre>";
                  var_dump($_POST);
                  echo "</pre>";
                  
                  //on a pas d'autres choix pour vérifier la valeur du champ que de se servir du code postal puisque les champs sont deja preremplis avec les donnees de mondial relay
                  //message alertes si on choisit mondial relay france on afficche une erreur si code postal pas correct
                  if ($detail_livraison == '(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $c <> filter_var($c, FILTER_VALIDATE_INT)) {
                    echo "0-8";
                  }
                  
                  //message alertes si on choisit mondial relay france on affiche une erreur si code postal pas correct
                  else if ($detail_livraison == '(mondial relay-FRANCE)4 euro(s)' && $c <> filter_var($c, FILTER_VALIDATE_INT)) {
                    echo "0-8";
                  }
                  
                  //message alertes si on choisit mondial relay luxembourg on affiche une erreur si code postal pas correct
                  else if (($detail_livraison == '(mondial relay-LUXEMBOURG)3 euro(s)') && ($c <> filter_var($c, FILTER_VALIDATE_INT))) {
                    echo "0-8";
                  }
                  
                  //message alertes si on choisit mondial relay PAYS-BAS on affiche une erreur si code postal pas correct
                  else if (($detail_livraison == '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)') && ($c <> filter_var($c, FILTER_VALIDATE_INT))) {
                    echo "0-8";
                  }
                  
                  //message alertes si on choisit poste colis belgique on affiche une erreur si il manque un champs
                  else if ($detail_livraison == '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)' && ( empty($_POST["adressepoint"]) || empty($_POST["cppoint"]) || empty($_POST["villepoint"]) )) {
                    echo "0-9";
                  }
                  
                  //message alertes si on choisit livraison poste belgique et que le pays n'est pas belgique
                  else if ($detail_livraison == '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)' || ($detail_livraison == '(POSTE-ENVELLOPPE-belgique)1 euro(s)') || ($detail_livraison == '(POSTE-COLIS-BELGIQUE)6.50 euro(s)') && $pays <> "Belgique") {
                    echo "0-17";
                  }
                  
                  //si on choisit mondial relay belgique et que le pays de mondial relay ou le pays postal pas de belgique
                  else if ($detail_livraison == '(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $pays !== "Belgique" || $cb_PAYS <> "BE") {
                    echo "0-17";
                  }
                  
                  //message alertes si on choisit livraison poste luxembourg et que le pays n'est pas luxembourg
                  else if ($detail_livraison == '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)' && $pays <> "Luxembourg") {
                    echo "0-17";
                  }
                  
                  //si on choisit mondial relay luxembourg et que le pays de mondial relay ou le pays postal pas de luxembourg
                  else if ($detail_livraison == '(mondial relay-LUXEMBOURG)3 euro(s)' && $pays <> "Luxembourg"
                          or $cb_PAYS <> "LU") {
                    echo "0-17";
                  }
                  
                  //message alertes si on choisit livraison poste france et que le pays n'est pas france
                  else if ($detail_livraison == '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)' && $pays <> "France") {
                    echo "0-17";
                  }
                  
                  //si on choisit mondial relay france et que le pays de mondial relay ou le pays postal pas de france
                  else if ($detail_livraison == '(mondial relay-FRANCE)4 euro(s)' && $pays <> "France"
                          or $cb_PAYS <> "FR") {
                    echo "0-17";
                  }
                  
                  //message alertes si on choisit livraison poste pays-bas et que le pays n'est pas pays-bas
                  else if ($detail_livraison == '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)' && $pays <> "Pays-bas") {
                    echo "0-17";
                  }
                  
                  //si on choisit mondial relay pays-bas et que le pays de mondial relay ou le pays postal pas de pays-bas
                  else if ($detail_livraison == '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)' && $pays <> "Pays-bas"
                          or $cb_PAYS <> "NL") {
                    echo "0-17";
                  }
                  
                  //message alertes si on choisit poste colis belgique on affiche une erreur si il manque un champs
                  else if ($detail_livraison=='(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)'
                  && $adressepoint==""
                  or $cppoint ==""
                  or $villepoint =="")
                  {echo "0-9"; } 
                    
                  //message alertes si autre probleme
                  if (!$commande) {
                    echo "0-21";
                  }  // code d'erreur si c'est pas bon pour la commande
                  1. Modérateur

                    Bon..

                    Sacré usine à gaz ton code...

                    Bref..

                    Déjà ..   faire un !isset et en plus vérifier que la variable n'est pas vide .. revient simplement à faire un empty

                    (déjà dit non ? )

                    En plus, il serait plus propre de récupérer PROPREMENT les variables AVANT de les utiliser.

                    Tu peux aussi séparer un peu tes bloc IF ..  

                    Et puis, ça ne sert à rien de mettre des parenthèses partout n'importe comment...

                    En gros, ton code pourrait ressembler à ça

                    <?php
                    
                    error_reporting(E_ALL);
                    // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs
                    ini_set("display_errors", 1);
                    
                    // Saisissez ici l'adresse mail du destinataire
                    $destinataire = "***@***";
                    var_dump($detail_livraison);
                    
                    //on récupère PROPREMENT les variables AVANT de les utiliser
                    $nom = !empty($_POST["nom"]) ? trim($_POST["nom"]) : NULL;
                    $prenom = !empty($_POST["prenom"]) ? trim($_POST["prenom"]) : NULL;
                    $adresse = !empty($_POST["adresse"]) ? trim($_POST["adresse"]) : NULL;
                    $cp = !empty($_POST["cp"]) ? trim($_POST["cp"]) : NULL;
                    $ville = !empty($_POST["ville"]) ? trim($_POST["ville"]) : NULL;
                    $pays = !empty($_POST["pays"]) ? trim($_POST["pays"]) : NULL;
                    $email = !empty($_POST["email"]) ? trim($_POST["email"]) : NULL;
                    $cb_CP = !empty($_POST["cb_CP"]) ? trim($_POST["cb_CP"]) : NULL;
                    $cb_PAYS = !empty($_POST["cb_PAYS"]) ? trim($_POST["cb_PAYS"]) : NULL;
                    $detail_livraison = !empty($_POST["detail_livraison"]) ? trim($_POST["detail_livraison"]) : NULL;
                    $total_qte_bas = isset($_POST["total_qte_bas"]) ? trim($_POST["total_qte_bas"]) : 0;
                    $commande = isset($_POST["commande"]) ? trim($_POST["commande"]) : NULL;
                    
                    //on initialise quelques variables pour tester
                    $date = date('Y/m/d');
                    $b = $cp;
                    $c = $cb_CP;
                    $country = $pays;
                    
                    //debut des messages d'alertes
                    //si quanditee est egal a 0
                    if ($total_qte_bas == '0') {
                      echo "0-18";
                    }
                    
                    //si le choix du mode de livraison est le champ cache on affiche une alerte
                    else if ($detail_livraison == '() euro(s)') {
                      echo "0-15";
                    }
                    
                    //on teste les donnees postale
                    else if (empty($nom)) {
                      echo "0-1";
                    } else if (empty($prenom)) {
                      echo "0-2";
                    } else if (empty($adresse)) {
                      echo "0-3";
                    } else if (empty($cp)) {
                      echo "0-4";
                    } else if (empty($ville)) {
                      echo "0-5";
                    } else if (empty($pays)) {
                      echo "0-6";
                    } else if (empty($email)) {
                      echo "0-7";
                    } else if (!filter_var(($email), FILTER_VALIDATE_EMAIL)) {
                      echo "0-10";
                    }
                    
                    //on teste afin de savoir si c'est bien un code postal dans le champs adresse de chaque pays
                    else if ($b <> filter_var($b, FILTER_VALIDATE_INT)) {
                      echo "0-11";
                    }
                    
                    //test de l'adresse il doit y avoir un numero pour tout les pays chaque pays
                    elseif (!preg_match('#[\d ]#', ($adresse))) {
                      echo "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")) {
                      echo "0-16";
                    }
                    
                    
                    /**
                     * GESTION DE LA LIVRAISON
                     */
                    echo "<pre>";
                    var_dump($_POST);
                    echo "</pre>";
                    //on a pas d'autres choix pour vérifier la valeur du champ que de se servir du code postal puisque les champs sont deja preremplis avec les donnees de mondial relay
                    //message alertes si on choisit mondial relay france on afficche une erreur si code postal pas correct
                    if ($detail_livraison == '(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $c <> filter_var($c, FILTER_VALIDATE_INT)) {
                      echo "0-8";
                    }
                    
                    //message alertes si on choisit mondial relay france on affiche une erreur si code postal pas correct
                    else if ($detail_livraison == '(mondial relay-FRANCE)4 euro(s)' && $c <> filter_var($c, FILTER_VALIDATE_INT)) {
                      echo "0-8";
                    }
                    
                    //message alertes si on choisit mondial relay luxembourg on affiche une erreur si code postal pas correct
                    else if (($detail_livraison == '(mondial relay-LUXEMBOURG)3 euro(s)') && ($c <> filter_var($c, FILTER_VALIDATE_INT))) {
                      echo "0-8";
                    }
                    
                    //message alertes si on choisit mondial relay PAYS-BAS on affiche une erreur si code postal pas correct
                    else if (($detail_livraison == '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)') && ($c <> filter_var($c, FILTER_VALIDATE_INT))) {
                      echo "0-8";
                    }
                    
                    //message alertes si on choisit poste colis belgique on affiche une erreur si il manque un champs
                    else if ($detail_livraison == '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)' && ( empty($_POST["adressepoint"]) || empty($_POST["cppoint"]) || empty($_POST["villepoint"]) )) {
                      echo "0-9";
                    }
                    
                    //message alertes si on choisit livraison poste belgique et que le pays n'est pas belgique
                    else if ($detail_livraison == '(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)' || ($detail_livraison == '(POSTE-ENVELLOPPE-belgique)1 euro(s)') || ($detail_livraison == '(POSTE-COLIS-BELGIQUE)6.50 euro(s)') && $pays <> "Belgique") {
                      echo "0-17";
                    }
                    
                    //si on choisit mondial relay belgique et que le pays de mondial relay ou le pays postal pas de belgique
                    else if ($detail_livraison == '(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $pays !== "Belgique" || $cb_PAYS <> "BE") {
                      echo "0-17";
                    }
                    
                    //message alertes si on choisit livraison poste luxembourg et que le pays n'est pas luxembourg
                    else if ($detail_livraison == '(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)' && $pays <> "Luxembourg") {
                      echo "0-17";
                    }
                    
                    //si on choisit mondial relay luxembourg et que le pays de mondial relay ou le pays postal pas de luxembourg
                    else if ($detail_livraison == '(mondial relay-LUXEMBOURG)3 euro(s)' && $pays <> "Luxembourg"
                            or $cb_PAYS <> "LU") {
                      echo "0-17";
                    }
                    
                    //message alertes si on choisit livraison poste france et que le pays n'est pas france
                    else if ($detail_livraison == '(POSTE-ENVELLOPPE-FRANCE)2 euro(s)' && $pays <> "France") {
                      echo "0-17";
                    }
                    
                    //si on choisit mondial relay france et que le pays de mondial relay ou le pays postal pas de france
                    else if ($detail_livraison == '(mondial relay-FRANCE)4 euro(s)' && $pays <> "France"
                            or $cb_PAYS <> "FR") {
                      echo "0-17";
                    }
                    
                    //message alertes si on choisit livraison poste pays-bas et que le pays n'est pas pays-bas
                    else if ($detail_livraison == '(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)' && $pays <> "Pays-bas") {
                      echo "0-17";
                    }
                    
                    //si on choisit mondial relay pays-bas et que le pays de mondial relay ou le pays postal pas de pays-bas
                    else if ($detail_livraison == '(MONDIAL-RELAY-PAYS-BAS)5 euro(s)' && $pays <> "Pays-bas"
                            or $cb_PAYS <> "NL") {
                      echo "0-17";
                    }
                    
                    
                    // AUTRE ERREUR
                    //message alertes si autre probleme
                    if (!$commande) {
                      echo "0-21";
                    }  // code d'erreur si c'est pas bon pour la commande

                    Il semble aussi que tu avais encore un souci de priorisation de tes tests. ( des parenthèses mal placées.. )


                    • 1
                    • 2