Pour les pays, je ne vois pas trop l'utilité d'une boucle...
1. Dans ton formulaire tu dois avoir une liste de choix avec les pays.
2. Tu récupères le champ pays, tu le sécurises, tu le formates bien (tout en minuscules, tout en majuscules, Majuscule sur la première lettre, ...)
3. Tu utlises les fonctions de PHP :
Code :
/*TPays => Array contenant la liste des pays, $pays la variable Pays envoyée par le formulaire et traitée... in_array ($pays, $TPays) renvoie True si $pays est dans le tableau $TPays On pourrait aussi utiliser array_search ($pays, $TPays) qui renvoie l'index de $pays s'il est dans $TPays, false sinon.... */ //Traitement de l'erreur } else (
|
Pour les noms/prénoms, il faudrait tenir compte des accents, espaces et autres signes... j'aurais plutôt tendance à limiter les vérifications à la taille, et à sécuriser l'input...
Pour la date, tu as le choix :
1. Utiliser un "calendrier" en javascript (voir sur google). Dans ce cas, tu connais le format théorique de la date. Il te suffit de tester ce que tu récupères...
Par exemple, tu sais que tu récupères une date au format jj/mm/aaaa, il te suffit de faire :
Code :
// checkdate est la fonction de base : elle te permet de vérifier que tu as bien une date // si tu fais des vérifications supplémentaires, tu pourrais le remplacer par une autre fonction.. if (! checkdate($Tdate[1], $Tdate[0], $Tdate[2)) { // Gestion de l'erreur } else { // Eventuellement des tests supplémentaires... }
|
2. Prévoir trois champs : jour, mois et année.
- Tu récupères les trois valeur.
- Tu vérifies qu'elles sont bien numériques.
- Tu vérifies que ça forme une date valide.
3. Laisser l'utlisateur saisir ce qu'il veut.
Plus délicat : dans ce cas tu dois accepter JJ/MM/AA ou JJ-MM-AAAA (sans compter les risques de problèmes si tu as des anglo-saxons qui saisissent les dates au format MM/JJ/AAAA).
Le principe reste plu ou moins le même, en plus compliqué... Récupérer la valeur, vérifier que le format correspond à une date (trois nombres séparés par un séparateur), et ensuite vérifier qu'il s'agit d'une date.