[RESOLU] comment vérifier si une case radio est bien cochée

Eléphant du PHP | 499 Messages

14 juil. 2022, 11:10

bonjour a tous
j'ai un formulaire de bon de commande
dans lequel je teste si l'utilisateur a bien rentre ses coordonnées avec des modals et du php
tout fonctionne bien

Mais a présent je souhaiterais également vérifier sur si il choisit mondial relay que je puisse vérifier que les champs de mondial relay ne sont pas vide

voici mon code avec les boutons radios et plus bas la partie du code qui réclame les coordonnes de mondial relay si l'utilisateur a choisi ce mode de livraison

Code : Tout sélectionner

<div class="accordion-body"> <!-- debut container pour la belgique --> <div class="container"> <div class="row " style="background: #ECE9E7;margin-bottom:10px;border-color: #000;border-style : solid;border-width : 5px;"> <div class="col-sm "> <!-- explication data-lang si de choisi alors on active la partie id="ref-de" ligne --> <input type="radio" name="choix_livraison" class="choix_livraison articleBtnposte" checked="checked" data-lang="de" data-nom="POSTE-ENVELLOPPE-belgique" value="1" onclick="ouvreMaJolieAlertposte(event,' ');" /> Par poste enveloppe (je ne suis pas responsable des pertes éventuelles) 1,10 euros </div> </div> <div class="row " style="background: #ECE9E7;margin-bottom:10px;border-color: #000;border-style : solid;border-width : 5px;"> <div class="col-sm "> <!-- explication data-lang si de choisi alors on active la partie id="ref-be" ligne --> <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="MONDIAL-RELAY-BELGIQUE" data-lang="be" value="3" /> Par Mondial Relay avec suivi du colis 3 euros </div> </div> <div class="row " style="background: #ECE9E7;margin-bottom:10px;border-color: #000;border-style : solid;border-width : 5px;"> <div class="col-sm "> <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-COLIS-BELGIQUE" value="6.50" checked="checked"> Par poste colis avec garanti a votre domicile 6.50 euros </div> </div> <div class="row " style="background: #ECE9E7;margin-bottom:10px;border-color: #000;border-style : solid;border-width : 5px;"> <div class="col-sm "> <!-- explication data-lang si de choisi alors on active la partie id="ref-fr" ligne --> <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-COLIS-BELGIQUE_point" data-lang="fr" value="5.50" /> Par poste dans un point d’enlèvement 5.50 euros </div> </div> </div> </div> </div>

Code : Tout sélectionner

<div class="container" style="background-color: #d7dddd;max-width: 640px; margin-bottom: 15px;"> <div id="ref-be" class="desc"> <div class="col-md-12 mt-3"> <label for="nommr">Nom du point mondial relay</label> <input class="form-control mondialRelay" type="text" name="nom_mondial" value="" id="nom_mondial" placeholder="Nom du point mondial relay" required="required"> <br> <label for="adressemr">Adresse du point mondial relay</label> <input class="form-control mondialRelay" type="text" name="adresse_mondial" value="" id="adresse_mondial" placeholder="Adresse du point mondial relay" required="required"> <br> <label for="cpmr">Code postal du point mondial relay</label> <input class="form-control mondialRelay" type="text" name="cp_mondial" value="" id="cp_mondial" placeholder="Code postal du point mondial relay" required="required"> <br> <label for="villemr">Ville du point mondial relay</label> <input class="form-control mondialRelay" type="text" name="ville_mondial" value="" id="ville_mondial" placeholder="Ville du point mondial relay" required="required"> <br> <label for="paysmr">Pays du point mondial relay</label> <input class="form-control mondialRelay" type="text" name="pays_mondial" value="" id="pays_mondial" placeholder="Pays du point mondial relay" required="required"> </div> </div> </div>
La partie de vérification en php

Code : Tout sélectionner

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 (!isset($_POST["nom_mondial""]) || ($_POST["nom_mondial""]=="")) et si bouton radio coché sur MONDIAL-RELAY-BELGIQUE {echo "0-8"; } else if (!isset($_POST["commande"]) || ($_POST["commande"]=="")) {echo "0-9"; }
Merci de l'aide

Eléphant du PHP | 499 Messages

14 juil. 2022, 16:12

j'ai essaye ceci mais sans succès , cela ne retourne aucune erreur

Code : Tout sélectionner

else if (isset($_POST['choix_livraison']) && $_POST['choix_livraison'] == "3") { // Champ Mondial Relay à tester if (!isset($_POST["nom_mondial"]) || ($_POST["nom_mondial"]=="")) { {echo "0-8"; } } // Champ Mondial Relay à tester if (!isset($_POST["adresse_mondial"]) || ($_POST["adresse_mondial"]=="")) { {echo "0-8"; } } //{echo "0-8"; } }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9513 Messages

18 juil. 2022, 15:29

Fais un var_dump($_POST) pour voir comment est renvoyée l'info de ta case à cocher ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 499 Messages

18 juil. 2022, 15:48

Merci pour la reponse
cela est réglé enfin
mais il me reste un petit soucis de vérification avec l'adresse email afin de savoir si elle est valide ou pas
Mais mon code ne retourne rien si l'adresse email est mauvaise

Code : Tout sélectionner

else if (!isset($_POST["email"]) || ($_POST["email"]=="")) if(filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){ echo "L'adresse e-mail est valide"; }else {echo "0-7"; }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9513 Messages

18 juil. 2022, 15:56

Je pense qu'il te manque des accolades sur ce qui doit être fait dans le cadre de ton elseif.

Par ailleurs, pour s'approcher de l'idéal et surtout limiter les risques d'erreur, je te recommande de
1) toujours mettre des accolades, ça évite les erreurs
2) elseif en 1 mot, c'est pas obligatoire mais ça évite aussi qqs erreurs
3) peut être le + important : faire une vraie indentation de son code, quitte à utiliser une fonction de ton éditeur de code car ils peuvent quasiment tous le faire à la demande.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 499 Messages

18 juil. 2022, 16:17

Merci pour le réponse et les explications

voici la correction mais lorsque l'adresse email n'est pas une adresse email aucune erreur n'est retournée
Lorsque j'essaye de mettre le code intenter celui ci ne respecte pas le format quand je le poste

Code : Tout sélectionner

<?php // je verifie si la variable est bien remplie elseif (!isset($_POST["ville"]) || ($_POST["ville"]=="")) {echo "0-5"; } // je verifie si la variable est bien remplie elseif (!isset($_POST["pays"]) || ($_POST["pays"]=="")) {echo "0-6"; } // je verifie si la variable est bien remplie elseif (!isset($_POST["email"]) || ($_POST["email"]=="")){ //si la variable est remplie je regarde si c'est une vraie adresse email if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){ echo "L'adresse e-mail est valide"; }else{ echo "0-7"; } } ?>

Avatar du membre
Eléphanteau du PHP | 41 Messages

19 juil. 2022, 12:28

je te conseil d'appliqué les types à tes inputs pour réalisé un filtre coté utilisateur une personne qui code saura passer outre mais 98% des gens non
https://developer.mozilla.org/fr/docs/W ... ment/input
le type permet de stopper les erreurs par exemple dans les mail et ça force l'utilisateur à ne pas entrer n'importe quoi mais comme je te l'ai dit c'est une façade qui pourra se modifier donc il te faudra coté php vérifier l'information.
l'avantage aussi c'est que cela pilotera l'utilisateur et affichera une réaction visuel si le type n'est pas respecter
par exemple si tu oublie un @ dans le mail le contour sera rouge et n'hésite pas à utiliser placeholder
https://www.w3schools.com/tags/att_inpu ... holder.asp

et pour finir je te renvoie sur le WCAG pour l'accessibilité une personne avec un handicap sonore, visuel ou autre pourrait ne pas
savoir remplir ton formulaire il est bien de maitrisé dés maintenant les "aria-labelle" ça doit devenir instinctif.

je te rajoute l'addon pour vérifier l'accessibilité de ta page si elle comporte des erreurs. sache aussi que c'est un métier avec beaucoup de demande et très très bien payer les spécialiste du WCAG;

Firefox : https://addons.mozilla.org/fr/firefox/a ... lity-tool/
chrome: https://chrome.google.com/webstore/deta ... cofh?hl=fr

voili voila
bonne continuation à toi

Eléphant du PHP | 499 Messages

28 juil. 2022, 19:50

Bonjour
Un grand merci pour la réponse et l'aide ainsi que les explications
j'ai fini par trouver pour la vérification de l'email

En fait ce formulaire est un bon de commande que je transmets juste sur demande , donc l'utilisateur ne devrait pas essayer de le trafiquer ou autre
Mais c'est sur que de protéger les inputs c'est super

Oui je suis d'accord il faut vérifier en html et en php ,j(utilise déjà un placeholder

Merci pour les liens pour les personnes avec un handicap visuel , cela est toujours bon a savoir
Mais dans mon cas cela est un bon de commande pour la pêche donc....

Encore mille fois merci pour toutes ces explications