Bonjour Clair3 et bienvenue sur PHPfrance !
On le fait au moment du if (isset($_POST["submit"])) en mettant une série de conditions ? Avant ? Après ?
Cette commande permet de savoir si un formulaire a été envoyé, par conséquent si tu fais tes tests de validation avant, ils vont se faire même lorsqu'aucune donnée n'aura été envoyé, ce qui n'est pas très utile, il faut donc faire les tests après.
Il est effectivement indispensable de contrôler en PHP les variables qui te sont envoyés par un utilisateur, notamment pour des raisons de sécurité.
Il y a 2 solutions, qui sont complémentaires :
A) PHP dispose notamment de la
fonction filter_var() ainsi qu'une liste de filtres prédéfinis pour contrôler les types de variables les plus courantes.
Il existe deux types de filtres :
- des
filtres de validation qui vont renvoyer true ou false pour te dire si la variable correspond bien à ce que tu attends.
Par exemple : FILTER_VALIDATE_EMAIL > renverra true si la donnée passée en paramètre ressemble bien à une adresse e-mail, ou false sinon
- des
filtres de nettoyage qui vont renvoyer la variable que tu as passé en paramètre débarrassée de tous les caractères qui ne correspondent pas au format que tu attends.
Il y a pas mal d'exemple dans la documentation que je t'encourage à tester pour comprendre le fonctionnement.
B) La 2ème solution, utile si tu veux faire des tests + précis, c'est de passer par des
expressions régulières, mais c'est un peu + compliqué à mettre en oeuvre si tu n'as jamais fait de regex.
Voici par exemple ce qu'il faut faire pour vérifier qu'un "numéro d'abonné est bien un nombre sur 8 caractères "
if (preg_match("`[0-9]{8}`i", $numero_abonne) {
// Numéro d'abonné valide
}else{
// Numéro d'abonné invalide
}
Rédiger des expressions régulières n'est pas toujours aussi aisé, il y a un site qui est pas mal pour tester :
https://regex101.com/r/hX1mD2/1