Problème avec mes conditions en php
Résolu/Ferméyg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 - 6 août 2022 à 20:48
- Problème avec mes conditions en php
- Easy php - Télécharger - Divers Web & Internet
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Votre compte a été désactivé pour violation de nos conditions d’utilisation - Guide
- Fonction rang excel avec plusieurs conditions ✓ - Forum Excel
- Php natif - Forum PHP
25 réponses
3 août 2022 à 21:35
Bonjour,
Il faudrait qu'on voit ton bloc IF COMPLET ...
Et puis.. que tu fasses des VAR_DUMP($_POST); ( avant le IF ) pour savoir ce que tes variables contiennent exactement...
3 août 2022 à 23:11
bonjour,
Si tu ne connais pas bien la priorité des opérateurs logiques, il est recommandé de toujours utiliser des parenthèses. Es-tu certain de bien comprendre comment sera évalué ceci?
(condition1 && condition2 or condition3 )
4 août 2022 à 09:09
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.. )
4 août 2022 à 12:23
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 }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionbonjour
Merci pour les réponses
Lorsque je fais un var_dump de post rien ne s'affiche a mon écran
Surement a cause des messages modals que j'ai sur la page php qui servent pour la gestion des erreurs
Ne devrais pas enlever ces appels aux messages d'erreur sur ma page mail.php
voici donc le bloc du if avec les conditions pour mondial relay et la poste
//message alertes si on choisit livraison poste belgique et que le pays n'est pas belgique if ($_POST["detail_livraison"]=='(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)' or ($_POST["detail_livraison"]=='(POSTE-ENVELLOPPE-belgique)1 euro(s)') or ($_POST["detail_livraison"]=='(POSTE-COLIS-BELGIQUE)6.50 euro(s)') && $_POST["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 ($_POST["detail_livraison"]=='(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $_POST["pays"]!=="Belgique" or $_POST["cb_PAYS"]<>"BE") {echo "0-17"; } //message alertes si on choisit livraison poste luxembourge et que le pays n'est pas luxembourg else if ($_POST["detail_livraison"]=='(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)' && $_POST["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 ($_POST["detail_livraison"]=='(mondial relay-LUXEMBOURG)3 euro(s)' && $_POST["pays"]<>"Luxembourg" or $_POST["cb_PAYS"]<>"LU") {echo "0-17"; } //message alertes si on choisit livraison poste france et que le pays n'est pas france else if ($_POST["detail_livraison"] =='(POSTE-ENVELLOPPE-FRANCE)2 euro(s)' &&$_POST["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 ($_POST["detail_livraison"] =='(mondial relay-FRANCE)4 euro(s)' && $_POST["pays"]<>"France" or $_POST["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 ($_POST["detail_livraison"]=='(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)' && $_POST["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 ($_POST["detail_livraison"]=='(MONDIAL-RELAY-PAYS-BAS)5 euro(s)' && $_POST["pays"]<>"Pays-bas" or $_POST["cb_PAYS"]<>"NL" ) {echo "0-17"; }
Voila j'ai corriger suivant l'exemple de yg_be que je remercie au passage ainsi que jordane
3 août 2022 à 23:46
Je ne vois pas le rapport entre les fenêtres modales et le fait que le debug ne s'affiche pas.... Je serai curieux de savoir où est-ce que tu l'as placé.
Et donc, vu que tu dis avoir modifié ton code en appliquant la suggestion d'YG.. est-ce que c'est résolu ? Si oui il faut mettre la discussion en tant que telle...
4 août 2022 à 08:28
Je ne pense pas que tu as compris ma suggestion.
Je suggérais d'ajouter des parenthèses, pour s'assurer que les opérations logiques soient faites dans le bon ordre.
.
Pour les opérateurs arithmétiques + et *, pour contrôler l'ordre des opération, tu peux ajouter des parenthèses.
Par exemple, au lieu d'écrire 5 + 3 * 2, tu écrirais (5 + 3) * 2 ou 5 + ( 3 * 2 ). Le résultat est soit 16, soit 11, il est important de s'assurer d'obtenir le bon résultat.
.
Eh bien, il est prudent de faire de même avec les opérateurs logiques AND et OR.
Au lieu d'écrire
condition1 and condition2 or condition3
Il est prudent d'écrire une des deux formes suivantes, suivant le résultat attendu:
(condition1 and condition2 ) or condition3 condition1 and ( condition2 or condition3)
Merci pour l'aide
euhh c'est pour cela que je pose la question
voici toutes les conditions et ou j'ai placé le message de debug
<?php error_reporting(E_ALL); // Passez la valeur ci-dessous de 0 à 1 pour afficher les erreurs ini_set("display_errors", 1); //on initialise quelques variables pour tester $date=date('Y/m/d'); $b = ($_POST["cp"]); $c = ($_POST["cb_CP"]); $country=($_POST["pays"]); // Saisissez ici l'adresse mail du destinataire $destinataire = "***@***"; var_dump($_POST["detail_livraison"]); //debut des messages d'alertes //si quanditee est egal a 0 if($_POST["total_qte_bas"] =='0') { echo "0-18"; } //si le choix du mode de livraison est le champ cache on affiche une alerte else if ($_POST["detail_livraison"] =='() euro(s)') { echo "0-15"; } //on teste les donnees postale else if (!isset($_POST["nom"]) || ($_POST["nom"]=="")) { echo "0-1"; } else if (!isset($_POST["prenom"]) || ($_POST["prenom"]=="")) {echo "0-2"; } else if (!isset($_POST["adresse"]) || ($_POST["adresse"]=="")) {echo "0-3"; } else if (!isset($_POST["cp"]) || ($_POST["cp"]=="")) {echo "0-4"; } else if (!isset($_POST["ville"]) || ($_POST["ville"]=="")) {echo "0-5"; } else if (!isset($_POST["pays"]) || ($_POST["pays"]=="")) {echo "0-6"; } else if (!isset ($_POST["email"]) || ($_POST["email"]=="")) {echo "0-7"; } else if (!filter_var(($_POST["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 ]#',($_POST["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"; } //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 else if (($_POST["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 (($_POST["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 (($_POST["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 (($_POST["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 (($_POST["detail_livraison"] =='(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)') &&((!isset($_POST["adressepoint"]) || ($_POST["adressepoint"]=="")) or (!isset($_POST["cppoint"]) || ($_POST["cppoint"]=="")) or (!isset($_POST["villepoint"]) || ($_POST["villepoint"]=="")) )) {echo "0-9"; } //message alertes si on choisit livraison poste belgique et que le pays n'est pas belgique else if ($_POST["detail_livraison"]=='(POSTE-COLIS-BELGIQUE_point)5.50 euro(s)' or ($_POST["detail_livraison"]=='(POSTE-ENVELLOPPE-belgique)1 euro(s)') or ($_POST["detail_livraison"]=='(POSTE-COLIS-BELGIQUE)6.50 euro(s)') && $_POST["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 ($_POST["detail_livraison"]=='(MONDIAL-RELAY-BELGIQUE)3 euro(s)' && $_POST["pays"]!=="Belgique" or $_POST["cb_PAYS"]<>"BE") {echo "0-17"; } //message alertes si on choisit livraison poste luxembourg et que le pays n'est pas luxembourg else if ($_POST["detail_livraison"]=='(POSTE-ENVELLOPPE-LUXEMBOURG)1.50 euro(s)' && $_POST["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 ($_POST["detail_livraison"]=='(mondial relay-LUXEMBOURG)3 euro(s)' && $_POST["pays"]<>"Luxembourg" or $_POST["cb_PAYS"]<>"LU") {echo "0-17"; } //message alertes si on choisit livraison poste france et que le pays n'est pas france else if ($_POST["detail_livraison"] =='(POSTE-ENVELLOPPE-FRANCE)2 euro(s)' &&$_POST["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 ($_POST["detail_livraison"] =='(mondial relay-FRANCE)4 euro(s)' && $_POST["pays"]<>"France" or $_POST["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 ($_POST["detail_livraison"]=='(POSTE-ENVELLOPPE-PAYS-BAS)2 euro(s)' && $_POST["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 ($_POST["detail_livraison"]=='(MONDIAL-RELAY-PAYS-BAS)5 euro(s)' && $_POST["pays"]<>"Pays-bas" or $_POST["cb_PAYS"]<>"NL" ) {echo "0-17"; } //message alertes si autre probleme else if (!isset($_POST["commande"]) || ($_POST["commande"]=="")) {echo "0-21"; } // code d'erreur si c'est pas bon pour la commande else { // tout est bon en ce qui concerne le formulaire, on s'oriente vers un succès}
4 août 2022 à 06:37
J'avais marqué VAR_DUMP($_POST); ..pas var_dump($_POST["detail_livraison"]); !!
4 août 2022 à 07:40
oui jordane j'avais essaye aussi
Mais mon code ne semble plus fonctionner
Car sans mettre ce code lorsque je clique sur mon bouton "passer la commande "
j'ai les différents modals pour m'indiquer les erreurs et les oublis de l'utilisateurs
Alors que quand je mets ce code plus rien ne se passe lorsque je clique sur passer la commande
4 août 2022 à 10:30
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
4 août 2022 à 10:51
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"; }
4 août 2022 à 10:56
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 ?
Modifié le 4 août 2022 à 11:08
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
4 août 2022 à 11:24
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 !
4 août 2022 à 11:25
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
4 août 2022 à 11:40
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é
4 août 2022 à 11:43
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
4 août 2022 à 11:47
et donc.. que t'affiche le var_dump ??
et quel echo d'erreur s'affiche (si il y en a un ) ?
4 août 2022 à 11:54
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
4 août 2022 à 11:58
as-tu testé https://phil.pecheperle.be/panier/mail.php?
4 août 2022 à 12:00
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) ?
4 août 2022 à 12:02
en effet, son script mail.php retourne une belle erreur 500 ...
4 août 2022 à 12:04
j'ai choisi console
puis j'ai deplie le POST https:....
puis j'ai regarde dans l'onglet reponse
4 août 2022 à 12:05
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
Modifié le 4 août 2022 à 12:07
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
4 août 2022 à 12:11
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
4 août 2022 à 12:19
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 ?
4 août 2022 à 12:19
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...
4 août 2022 à 12:37
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
4 août 2022 à 14:17
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 ?
4 août 2022 à 14:49
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
4 août 2022 à 14:55
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
4 août 2022 à 15:17
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";
}
4 août 2022 à 15:34
il n'y a pas de raisons de la retirer, ça c'est une de tes conditions à toi au départ ...
4 août 2022 à 15:51
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 août 2022 à 09:00
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é ??
4 août 2022 à 14:52
alors que normalement
il devrait déjà afficher une erreur
if ($total_qte_bas == '0') { $error = "0-18";
4 août 2022 à 16:07
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é
5 août 2022 à 21:46
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
5 août 2022 à 22:42
Et donc... Que t'affiche la console ? L'onglet réponse de ton ajax ?