Valider les données en PHP est essentiel pour éviter les failles de sécurité comme les injections SQL ou XSS.
Sans une validation solide, vos applications risquent de traiter des informations malveillantes, compromettant la sécurité et la fiabilité. Cela peut mener à des erreurs coûteuses et des vulnérabilités critiques.
Dans cet article, découvrez comment utiliser les filtres de vérification en PHP 8 pour valider et nettoyer efficacement vos données, garantissant ainsi des applications sécurisées et performantes.
Les Filtres de Vérification en PHP 8
Les filtres de vérification en PHP sont utilisés pour valider et vérifier si vos données respectent certains formats ou conditions. Voici un schéma explicatif détaillant les filtres de vérification, leur utilisation, et des exemples pour une meilleure compréhension.
Validation des Nombres Entiers avec PHP 8
Dans cet exemple, vous allez vérifier si une variable contient un nombre entier valide. Vous utiliserez la fonction filter_var
avec le filtre FILTER_VALIDATE_IN
T pour valider l’âge d’un utilisateur.
Explications
- $age = 95; Cette ligne définit une variable $age et lui attribue la valeur 95. Ici, $age représente votre âge.
- if (filter_var($age, FILTER_VALIDATE_INT)) { Cette ligne utilise la fonction filter_var pour valider si la variable $age est un nombre entier.
- filter_var : Cette fonction filtre une variable avec un filtre spécifié. Elle prend deux arguments principaux :
- La variable à filtrer, ici $age.
- Le filtre à utiliser, ici
FILTER_VALIDATE_INT
qui vérifie si la variable est un entier valide.
- Le filtre à utiliser, ici
- echo ‘Votre âge est de ‘ . $age . ‘ ans’; Si la validation réussit (c’est-à-dire que $age est un entier), cette ligne imprime un message indiquant votre âge.
- echo ‘Erreur’; Si la validation échoue (c’est-à-dire que $age n’est pas un entier, comme $age= »mon age est 95 ans » ou $age=60.3), cette ligne imprime le message ‘Erreur’.
La sortie de programme :
Validation des Nombres à Virgule en PHP 8
Cet exemple montre comment vous pouvez vérifier si une variable contient un nombre à virgule flottante valide. Vous utiliserez la fonction filter_var
avec le filtre FILTER_VALIDATE_FLOAT
pour valider un tarif.
Explications
- $tarif = 20.5;
Cette ligne définit une variable $tarif et lui attribue la valeur 20.5. Ici, $tarif représente un tarif ou un prix.
- if (filter_var($tarif, FILTER_VALIDATE_FLOAT)) {
Cette ligne utilise la fonction filter_var pour valider si la variable $tarif est un nombre à virgule flottante (un nombre décimal).
filter_var : Cette fonction filtre une variable avec un filtre spécifié. Elle prend deux arguments principaux :
- La variable à filtrer, ici $tarif.
- Le filtre à utiliser, ici FILTER_VALIDATE_FLOAT qui vérifie si la variable est un nombre flottant valide.
- echo ‘Le tarif est de ‘ . $tarif . ‘ euro’;
Si la validation réussit (c’est-à-dire que $tarif est un nombre flottant), cette ligne imprime un message indiquant le tarif.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $tarif n’est pas un nombre flottant comme $tarif= »chaine » ), cette ligne imprime le message ‘Erreur’.
La sortie de programme :
Validation des Adresses Email en PHP 8
Dans cet exemple, vous allez démontrer comment vérifier si une adresse email est valide. Vous utiliserez la fonction filter_var
avec le filtre FILTER_VALIDATE_EMAIL
pour valider l’adresse email saisie par l’utilisateur.
Explications
- $email = « toto@yahoo.fr »;
Cette ligne définit une variable $email et lui attribue la valeur « toto@yahoo.fr ». Ici, $email représente une adresse email.
- if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
Cette ligne utilise la fonction filter_var pour valider si la variable $email est une adresse email valide.
- filter_var : Cette fonction filtre une variable avec un filtre spécifié. Elle prend deux arguments principaux :
- La variable à filtrer, ici $email.
- Le filtre à utiliser, ici
FILTER_VALIDATE_EMAIL
qui vérifie si la variable est une adresse email valide. - echo ‘Votre email est ‘ . $email;
Si la validation réussit (c’est-à-dire que $email est une adresse email valide), cette ligne imprime un message indiquant l’adresse email.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $email n’est pas une adresse email valide comme : $email=’toto@yahoo’ et $email=’toto@ yahoo.com’ et $email=’yahoo.com’), cette ligne imprime le message ‘Erreur’.
La sortie de programme :
Validation des URLs en PHP 8
Cet exemple illustre comment vous pouvez vérifier si une URL est valide. Vous utiliserez la fonction filter_var
avec le filtre FILTER_VALIDATE_URL
pour valider une URL et afficher un lien cliquable si elle est correcte.
' . $url . '';
} else {
echo 'Erreur';
}
?>
Explications
- $url = « http://www.google.fr »;
Cette ligne définit une variable $url et lui attribue la valeur « http://www.google.fr ». Ici, $url représente une adresse URL.
- if (filter_var($url, FILTER_VALIDATE_URL)) {
Cette ligne utilise la fonction filter_var pour valider si la variable $url est une URL valide.
filter_var : Cette fonction filtre une variable avec un filtre spécifié. Elle prend deux arguments principaux :
- La variable à filtrer, ici $url.
- Le filtre à utiliser, ici FILTER_VALIDATE_URL qui vérifie si la variable est une URL valide.
- echo ‘<a href= »‘ . $url . ‘ » target= »_blank »>’ . $url . ‘</a>’;
Si la validation réussit (c’est-à-dire que $url est une URL valide), cette ligne imprime un lien HTML utilisant l’URL.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $url n’est pas une URL valide comme $url=’ www.google.com’ en lever le protocole http), cette ligne imprime le message ‘Erreur’.
La sortie de programme :
Validation des Adresses IP avec PHP 8
Cet exemple illustre comment vous pouvez vérifier si une URL est valide. Vous utiliserez la fonction filter_var
avec le filtre FILTER_VALIDATE_URL
pour valider une URL et afficher un lien cliquable si elle est correcte.
Explications
- $ip = « 127.0.0.1 »;
Cette ligne définit une variable $ip et lui attribue la valeur « 127.0.0.1 ». Ici, $ip représente une adresse IP.
- if (filter_var($ip, FILTER_VALIDATE_IP)) {
Cette ligne utilise la fonction filter_var pour valider si la variable $ip est une adresse IP valide.
- filter_var : Cette fonction filtre une variable avec un filtre spécifié. Elle prend deux arguments principaux :
- La variable à filtrer, ici $ip.
- Le filtre à utiliser, ici FILTER_VALIDATE_IP qui vérifie si la variable est une adresse IP valide.
- echo ‘Votre adresse IP est ‘ . $ip;
Si la validation réussit (c’est-à-dire que $ip est une adresse IP valide), cette ligne imprime un message indiquant l’adresse IP.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $ip n’est pas une adresse IP valide comme $ip=’127001’ ou $ip=’12543’…), cette ligne imprime le message ‘Erreur’.
La sortie de programme :
Options Avancées de Validation en PHP 8
Cet exemple montre comment vous pouvez vérifier si une variable dans PHP 8 est un nombre entier valide et se situe dans une plage spécifique. Vous utiliserez la fonction filter_var
avec le filtre FILTER_VALIDATE_INT
et des options supplémentaires pour définir les limites minimum et maximum. Dans cet exemple, vous vérifiez si l’âge d’un utilisateur est compris entre 18 et 150 ans.
[
'min_range' => 18,
'max_range' => 150
]
];
// Valider si l'âge est un entier et est compris entre 18 et 150
if (filter_var($age, FILTER_VALIDATE_INT, $options)) {
echo 'Votre âge est de ' . $age . ' ans';
} else {
echo 'Erreur';
}
?>
Explications
- $age = 95;
Cette ligne définit une variable $age avec une valeur de 95, représentant l’âge à vérifier.
- Définir les options pour la plage de valeurs
$options = ['options' => ['min_range' => 18, 'max_range' => 150]];
Cette ligne définit un tableau $options avec les limites minimum (min_range) et maximum (max_range) pour la validation de l’âge.
- Validation de l’âge avec des options
if (filter_var($age, FILTER_VALIDATE_INT, $options)) {
Cette ligne utilise la fonction filter_var
pour vérifier si l’âge est un nombre entier valide et s’il est compris entre 18 et 150.
echo ‘Votre âge est de ‘ . $age . ‘ ans’;
Si la validation réussit, cette ligne affiche le message ‘Votre âge est de 95 ans’.
echo ‘Erreur’;
Si la validation échoue, cette ligne affiche le message ‘Erreur’.
La sortie de programme :
Fonctions de Validation PHP 8 et leurs Descriptions
Fonction | Description |
---|---|
Filter_var | Cette fonction filtre une variable avec un filtre spécifié. Elle est utilisée pour valider et/ou assainir les données.
FILTER_VALIDATE_INT |
FILTER_VALIDATE_FLOAT | Un filtre de filter_var qui vérifie si la variable est un nombre flottant valide |
FILTER_VALIDATE_EMAIL | Un filtre de filter_var qui vérifie si la variable est une adresse email valide. |
FILTER_VALIDATE_URL | Un filtre de filter_var qui vérifie si la variable est une URL valide. |
FILTER_VALIDATE_IP | Un filtre de filter_var qui vérifie si la variable est une adresse IP valide. |
Les Filtres de Nettoyage en PHP 8
Les filtres de nettoyage en PHP sont utilisés pour nettoyer ou assainir les données d’entrée, en supprimant ou en transformant les caractères indésirables pour empêcher les injections de code, les attaques XSS, et d’autres types de manipulations malveillantes.
Suppression des TAGs HTML en PHP 8
Cet exemple montre comment vous pouvez supprimer les balises HTML d’une chaîne de texte pour la rendre plus sûre. Vous utiliserez la fonction filter_var
avec le filtre FILTER_SANITIZE_STRING
pour nettoyer le message. Notez que FILTER_SANITIZE_STRING
est obsolète depuis PHP 8.1.0.
ceci est mon message. ?on Site";
$nettoyer = filter_var($message, FILTER_SANITIZE_STRING);
echo $nettoyer;
?>
Remarque
- FILTER_SANITIZE_STRING : Ce filtre a été marqué obsolète dans PHP 8.1.0. Il est recommandé d’utiliser des fonctions PHP 8 comme htmlspecialchars pour échapper les caractères spéciaux ou strip_tags pour supprimer les balises HTML et PHP de manière plus spécifique.
Alors voila l’exemple mis à jour :
est mon message.";
$nettoyer = strip_tags($message);
echo $nettoyer;
?>
La sortie de programme :
Remarque :
Ce script utilise filter_var avec FILTER_SANITIZE_STRING
pour nettoyer le texte des balises HTML, mais pour des versions plus récentes de PHP, il est préférable d’utiliser strip_tags ou d’autres fonctions pour assurer une meilleure compatibilité et sécurité.
Nettoyage des Adresses Email en PHP 8
Dans cet exemple, vous allez démontrer comment nettoyer une adresse email pour supprimer les caractères invalides. Ensuite, vous validerez l’adresse nettoyée avec filter_var
et le filtre FILTER_VALIDATE_EMAIL
.
'; // Affiche l'adresse email non nettoyée
// Nettoyer l'adresse email
$clean_email = filter_var($email, FILTER_SANITIZE_EMAIL);
echo 'email nettoyée : '.$clean_email . '
'; // Affiche l'adresse email nettoyée
// Valider l'adresse email
if (filter_var($clean_email, FILTER_VALIDATE_EMAIL)) {
echo 'Adresse email correcte';
} else {
echo 'Erreur';
}
?>
Explications
- $email = « toto@yahoo.com »;
Cette ligne définit une variable $email et lui attribue la valeur « toto@yahoo.com ». Ici, $email représente une adresse email.
- $clean_email = filter_var($email, FILTER_SANITIZE_EMAIL);
Cette ligne utilise la fonction filter_var pour nettoyer l’adresse email en supprimant les caractères illégaux dans une adresse email.
- filter_var : Cette fonction filtre une variable avec un filtre spécifié. Elle prend deux arguments principaux :
- La variable à filtrer, ici $email.
- Le filtre à utiliser, ici
FILTER_SANITIZE_EMAIL
qui supprime les caractères invalides d’une adresse email.
- Le filtre à utiliser, ici
if (filter_var($clean_email, FILTER_VALIDATE_EMAIL)) {
Cette ligne utilise la fonction filter_var pour valider si l’adresse email nettoyée est une adresse email valide.
- FILTER_VALIDATE_EMAIL : Un filtre de filter_var qui vérifie si la variable est une adresse email valide.
- echo ‘Adresse email correcte’;
Si la validation réussit (c’est-à-dire que $clean_email est une adresse email valide), cette ligne affiche le message ‘Adresse email correcte’.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $clean_email n’est pas une adresse email valide), cette ligne affiche le message ‘Erreur’.
La sortie de programme :
Nettoyage des URLs en PHP 8
Cet exemple illustre comment vous pouvez nettoyer une URL pour supprimer les caractères invalides. Vous utiliserez la fonction filter_var
avec le filtre FILTER_SANITIZE_URL
pour nettoyer l’URL, puis vous la validerez avec FILTER_VALIDATE_URL
.
';
// Nettoyer l'URL
$clean_url = filter_var($url, FILTER_SANITIZE_URL);
echo 'URL nettoyée : ' . $clean_url . '
';
// Valider l'URL
if (filter_var($clean_url, FILTER_VALIDATE_URL)) {
echo 'URL OK';
} else {
echo 'Erreur';
}
?>
Explications
- $url = ‘http:// www.google.fr’;
Cette ligne définit une variable $url avec une URL contenant un espace pour tester le nettoyage.
- $clean_url = filter_var($url, FILTER_SANITIZE_URL);
Cette ligne utilise la fonction filter_var pour nettoyer l’URL en supprimant les caractères invalides pour une URL.
- FILTER_SANITIZE_URL : Un filtre de filter_var qui supprime les caractères invalides d’une URL, comme les espaces.
- if (filter_var($clean_url, FILTER_VALIDATE_URL)) {
Cette ligne utilise la fonction filter_var pour valider si l’URL nettoyée est une URL valide.
- FILTER_VALIDATE_URL : Un filtre de filter_var qui vérifie si la variable est une URL valide.
- echo ‘URL OK’;
Si la validation réussit (c’est-à-dire que $clean_url est une URL valide), cette ligne affiche le message ‘URL OK’.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $clean_url n’est pas une URL valide), cette ligne affiche le message ‘Erreur’.
La sortie de programme :
Nettoyage des Nombres en PHP 8
Dans cet exemple, vous allez montrer comment extraire et nettoyer un nombre PHP 8 entier d’une chaîne de texte. Vous utiliserez la fonction filter_var avec le filtre FILTER_SANITIZE_NUMBER_INT
pour extraire le nombre, puis vous le validerez avec FILTER_VALIDATE_INT.
';
// Nettoyer le texte pour extraire le nombre entier
$clean_age = filter_var($age, FILTER_SANITIZE_NUMBER_INT);
echo 'Âge nettoyé : ' . $clean_age . '
';
// Valider si le nombre nettoyé est un entier
if (filter_var($clean_age, FILTER_VALIDATE_INT)) {
echo 'Âge correct !';
} else {
echo 'Erreur';
}
?>
Explications
- $age = ‘mon age est 102 ans’;
Cette ligne définit une variable $age contenant une chaîne de texte avec un nombre à extraire.
- $clean_age = filter_var($age, FILTER_SANITIZE_NUMBER_INT);
Cette ligne utilise la fonction filter_var pour nettoyer le texte en extrayant uniquement les caractères numériques.
- FILTER_SANITIZE_NUMBER_INT : Un filtre de filter_var qui supprime tous les caractères non numériques sauf les signes plus (+) et moins (-), ce qui permet de récupérer le nombre entier.
- if (filter_var($clean_age, FILTER_VALIDATE_INT)) {
Cette ligne utilise la fonction filter_var pour valider si la chaîne nettoyée représente un entier valide.
- FILTER_VALIDATE_INT : Un filtre de filter_var qui vérifie si la variable est un entier valide.
- echo ‘Âge correct !’;
Si la validation réussit (c’est-à-dire que $clean_age est un entier valide), cette ligne affiche le message ‘Âge correct !’.
- echo ‘Erreur’;
Si la validation échoue (c’est-à-dire que $clean_age n’est pas un entier valide), cette ligne affiche le message ‘Erreur’.
La sortie de programme :
Fonctions de Nettoyage PHP 8 et leurs Descriptions
Fonction | Description |
---|---|
FILTER_SANITIZE_STRING | Un filtre de filter_var qui supprime les balises HTML et PHP d’une chaîne. (Obsolète depuis PHP 8.1.0)
|
FILTER_SANITIZE_EMAIL |
Un filtre de filter_var qui supprime les caractères invalides d’une adresse email.
FILTER_SANITIZE_URL |
FILTER_SANITIZE_NUMBER_INT | Un filtre de filter_var qui supprime tous les caractères non numériques sauf les signes plus (+) et moins (-). |
strip_tags | Supprime toutes les balises HTML et PHP d’une chaîne. |
htmlspecialchars | Convertit les caractères spéciaux en entités HTML pour éviter les problèmes de sécurité (non utilisé dans les exemples). |
Création de Filtres Personnalisés en PHP 8
Création d'un Filtre de Validation d'URL en PHP 8
Dans cet exemple, vous allez créer un filtre de validation personnalisé pour une URL en utilisant une fonction de rappel (callback) avec filter_var
. Ce filtre personnalisé vérifie si l’URL commence par « http » ou « https » et respecte un certain format à l’aide d’une expression régulière. L’utilisation de FILTER_CALLBACK permet d’appliquer une logique de validation spécifique aux besoins de l’utilisateur.
'verifierUrl'
];
if (filter_var($url, FILTER_CALLBACK, $options)) {
echo 'URL OK';
} else {
echo 'URL KO';
}
?>
Détails des éléments du code
Définition de la fonction verifierUrl :
- function verifierUrl($urlaVerifier) : Cette fonction prend une URL en entrée.
- $motif = ‘#^(http|https)://[a-zA-Z]+\.[a-zA-Z]+\.[a-zA-Z]{2,}#’; : Cette ligne définit une expression régulière qui vérifie si l’URL commence par « http » ou « https » et a un format correct.
- $result = preg_match($motif, $urlaVerifier); : Utilise preg_match pour vérifier si l’URL correspond à l’expression régulière.
- return $result; : Retourne le résultat de preg_match (1 si l’URL correspond, 0 sinon).
Définition de l’URL à tester :
- $url = ‘http://www.google.fr’; : L’URL à valider. On peut aussi tester avec ‘htt://www.google.fr’ et ‘www.google.fr’ pour voir les résultats de la validation.
Options pour filter_var :
- $options = [‘options’ => ‘verifierUrl’]; : Spécifie que filter_var doit utiliser la fonction verifierUrl comme fonction de rappel pour la validation.
Validation de l’URL :
- if (filter_var($url, FILTER_CALLBACK, $options)) { : Utilise filter_var avec FILTER_CALLBACK pour valider l’URL en utilisant la fonction de rappel.
- echo ‘URL OK’; : Affiche « URL OK » si l’URL est valide.
- echo ‘URL KO’; : Affiche « URL KO » si l’URL est invalide comme(‘htt://www.google.fr’ ou ‘www.google.fr’).
La sortie de programme :
- La sortie de programme sera : URL OK
- Dans le cas de changer $ulr avec $url=’http://www.google.fr’ ou $url=’www.google.fr’… il sera afficher URL KO car dans le premier il manque ‘p’ dans http et le deuxième l’absence de http.
Création d'un Filtre de Nettoyage de Téléphone en PHP 8
Dans cet exemple, vous allez créer un filtre de nettoyage personnalisé pour un numéro de téléphone en utilisant une fonction de rappel (callback) avec filter_var
. Ce filtre personnalisé supprimera tous les caractères non numériques d’une chaîne de texte représentant un numéro de téléphone, puis remplira la chaîne pour atteindre une longueur de 10 caractères en ajoutant des astérisques (*) à droite si nécessaire. L’utilisation de FILTER_CALLBACK
vous permet d’appliquer une logique de nettoyage spécifique aux besoins de l’utilisateur.
';
$options = [
'options' => 'telaNettoyer'
];
$telephone = filter_var($tel, FILTER_CALLBACK, $options);
echo 'tel aprés le nettoyage : '.$telephone;
?>
Détails des éléments du code
Définition de la fonction telaNettoyer :
- function telaNettoyer($telanettoyer) : Cette fonction prend un numéro de téléphone en entrée.
- $motif = ‘#[^0-9]#’; : Cette ligne définit une expression régulière qui correspond à tous les caractères non numériques.
- $result = preg_replace($motif, », $telanettoyer); : Utilise preg_replace pour supprimer tous les caractères non numériques du numéro de téléphone.
- $result = str_pad($result, 10, ‘*’, STR_PAD_RIGHT); : Utilise str_pad pour remplir la chaîne jusqu’à 10 caractères en ajoutant des astérisques (*) à droite si nécessaire.
- return $result; : Retourne le résultat nettoyé.
Définition du numéro de téléphone à nettoyer :
- $tel = ‘ a06z12345678ee ‘; : Le numéro de téléphone à nettoyer.
- Options pour filter_var :
- $options = [‘options’ => ‘telaNettoyer’]; : Spécifie que filter_var doit utiliser la fonction telaNettoyer comme fonction de rappel pour le nettoyage.
Nettoyage du numéro de téléphone :
- $telephone = filter_var($tel, FILTER_CALLBACK, $options); : Utilise filter_var avec FILTER_CALLBACK pour nettoyer le numéro de téléphone en utilisant la fonction de rappel.
Affichage du numéro de téléphone nettoyé :
- echo $telephone; : Affiche le numéro de téléphone nettoyé.
La sortie de programme :
Exercices Pratiques PHP 8
Exercice : Nettoyer et Valider une Adresse Email en PHP 8
Cet exemple montre comment créer un formulaire HTML PHP 8 vous permettant de saisir une adresse email, puis comment valider et nettoyer cette adresse en utilisant PHP. La validation garantit que l’email est conforme à un format standard, tandis que le nettoyage élimine les caractères non valides. Si votre adresse email a été modifiée pendant le nettoyage, cela sera indiqué.
Nettoyer et valider une adresse email
Email reçu : ' . $email . '
Email nettoyé : ' . $emailNettoyer;
}
} else {
echo 'Email non valide';
}
}
}
?>
Détails des éléments du code
Vérification de la soumission du formulaire :
- if (isset($_POST[‘valider’])) { : Cette condition vérifie si le formulaire a été soumis en utilisant le bouton « Valider ». Si c’est le cas, le traitement du formulaire commence.
Récupération et vérification du champ email :
- $email = $_POST[’email’]; : Cette ligne récupère l’adresse email soumise via le formulaire et la stocke dans la variable $email.
- if (empty($email)) { : Vérifie si le champ email est vide. Si c’est le cas, affiche un message demandant de rentrer une adresse email.
Nettoyage de l’adresse email :
- $emailNettoyer = filter_var($email, FILTER_SANITIZE_EMAIL); :
- filter_var : Cette fonction est utilisée pour filtrer et valider les données.
- FILTER_SANITIZE_EMAIL : Ce filtre supprime tous les caractères d’une chaîne qui ne sont pas autorisés dans une adresse email. Il nettoie l’adresse email en retirant les caractères non valides, tels que les espaces, les virgules et d’autres caractères spéciaux.
Validation de l’adresse email nettoyée :
- if (filter_var($emailNettoyer, FILTER_VALIDATE_EMAIL)) { :
- FILTER_VALIDATE_EMAIL : Ce filtre valide si une adresse email est conforme à un format standard d’adresse email. Il vérifie que l’adresse email nettoyée est valide.
Vérification si l’email a été modifié par le nettoyage :
- if ($email == $emailNettoyer) { : Vérifie si l’adresse email d’origine est identique à l’adresse email nettoyée.
- echo « Cet email n’a pas dû être nettoyé »; : Si l’email d’origine et l’email nettoyé sont identiques, cela signifie que l’email n’a pas été modifié par le processus de nettoyage.
- else { :
- echo ‘Cet email a dû être nettoyé<br>Email reçu: ‘ . $email . ‘<br>Email nettoyé : ‘ . $emailNettoyer; : Si l’email d’origine et l’email nettoyé sont différents, cela signifie que des caractères non valides ont été supprimés de l’email d’origine.
Affichage de l’email nettoyé :
- echo $emailNettoyer; : Affiche l’adresse email nettoyée, qu’elle ait été modifiée ou non.
Message d’erreur pour un email non valide :
- else { echo ‘Email non valide’; } : Si l’email nettoyé n’est pas valide, affiche un message indiquant que l’email n’est pas valide.
La sortie de programme :
Nous avons testé cet e-mail : ‘toto@éégmail.com’ et voici le résultat :
Applications Pratiques des Filtres PHP 8
Traitement Simultané de Variables en PHP 8
Ce code PHP montre comment définir et appliquer des filtres de validation à plusieurs champs de données soumises via la méthode POST d’un formulaire HTML. En utilisant la fonction filter_input_array, vous assurez que les valeurs saisies dans les champs « prenom » et « nom » sont validées selon les filtres spécifiés.
FILTER,
'nom' => FILTER
];
// Application des filtres aux données soumises
filter_input_array(INPUT_POST, $filters);
Application : Mise en Place de Filtres en PHP 8
Ce code illustre comment vous pouvez utiliser les filtres en PHP pour valider plusieurs entrées d’un formulaire HTML. En utilisant la fonction filter_input_array
, vous pouvez valider et filtrer les données soumises par l’utilisateur en une seule étape, garantissant ainsi que les valeurs saisies sont valides avant de les traiter.
Formulaire
FILTER_VALIDATE_EMAIL,
'age'=>FILTER_VALIDATE_INT
];
$result = filter_input_array(INPUT_POST,$filters);
}
?>
Application : Vérification de la Complétude des Données en PHP 8
La partie du code en question est utilisée pour s’assurer que tous les champs du formulaire PHP8 ont été remplis avant de procéder à la validation des données. En vérifiant que les champs ne sont pas vides, vous pouvez garantir que les données soumises sont complètes et éviter des erreurs liées à des informations manquantes.
foreach($filters as $filter=>$value){
if(empty($_POST[$filter])){
echo ''.ucfirst($filter).'est vide
';
}
}
- Boucle foreach : Parcourt chaque champ défini dans le tableau $filters.
- empty($_POST[$filter]) : Vérifie si le champ correspondant dans le tableau $_POST est vide.
- echo ‘<p>’ . ucfirst($filter) . ‘ est vide</p>’; : Affiche un message indiquant que le champ est vide, avec le nom du champ mis en majuscule pour une meilleure lisibilité.
La sortie de programme :
Application : Contrôle de la Qualité des Données en PHP 8
Dans le contexte de la validation des données de formulaire, il est crucial non seulement de vérifier que les champs sont remplis, mais aussi de s’assurer que les données fournies respectent les critères de validité spécifiés. Cette étape est essentielle pour garantir la qualité et l’intégrité des données reçues. Le code ajouté vous permet de détecter et de signaler les valeurs qui ne répondent pas aux exigences de validation définies.
}elseif($result[$filter] === false){
echo ''.ucfirst($filter).' invalide !
';
}
- elseif ($result[$filter] === false) : Vérifie si le résultat du filtre appliqué au champ est false, ce qui indique que la donnée ne respecte pas les critères de validation.
- echo ‘<p>’ . ucfirst($filter) . ‘ invalide !</p>’; : Affiche un message informant que la donnée du champ est invalide, avec le nom du champ mis en majuscule pour plus de clarté.
La sortie de programme :
Lorsque vous remplissez l’email avec ‘toto@’ et l’âge avec ‘AA’, voici le résultat :
Application : Insertion des Données en PHP 8
Une fois que les données soumises via le formulaire ont été validées et vérifiées, l’étape suivante est d’enregistrer ces données dans une base de données pour un stockage permanent et un traitement ultérieur. Ce processus implique non seulement la confirmation que toutes les données sont correctes et complètes, mais aussi leur insertion effective dans le système de gestion de base de données.
$controle_presence=0;
$controle_filtre=0;
foreach($filters as $filter=>$value){
if(empty($_POST[$filter])){
echo ''.ucfirst($filter).' est vide
';
$controle_presence+=1;
}elseif($result[$filter] === false){
echo ''.ucfirst($filter).' invalide !
';
$controle_filtre+=1;
}
}
if(($controle_presence==0)&& ($controle_filtre ==0)){
echo 'Insérer dans une BDD
';
echo 'Email : '.$result['email'].'
';
echo 'Age : '.$result['age'].'
';
}
Vérification de la Présence et de la Validité :
- empty($_POST[$filter]) : Vérifie si le champ est vide et incrémente le compteur $controle_presence.
- $result[$filter] === false : Vérifie si le filtre a échoué et incrémente le compteur $controle_filtre.
Affichage des Données ou Message d’Insertion :
- Si aucune erreur n’est détectée (les compteurs sont à 0), les données validées sont prêtes pour l’insertion dans la base de données.
- Les informations sont affichées à titre d’exemple, mais en pratique, elles seraient insérées dans une base de données à l’aide d’une requête SQL.
La sortie de programme :
Lorsque les données sont correctement saisies, voici l’affichage des résultats :
Application : Limitation de l'Âge en PHP 8
Dans cette application, vous allez simplement ajouter des options pour limiter l’âge à une plage comprise entre 20 et 60 ans. Voici le code correspondant :
'age'=>[
'filter'=>FILTER_VALIDATE_INT,
'options'=>[
'min_range'=>20,
'max_range'=>60
]
]
La sortie de programme :
Après cette modification, lorsque l’âge est inférieur à 20 ou supérieur à 60, l’affichage sera « Âge invalide ». Voici un exemple d’affichage que vous avez testé avec l’âge égal à 65 et voilà le résultat :
Application : Création d'une Expression Régulière en PHP 8
Créer une expression régulière permet de définir des motifs précis pour valider et extraire des données au sein des chaînes de caractères, offrant ainsi un contrôle détaillé sur la qualité des informations. Dans notre cas, nous avons intégré une vérification de date au formulaire comme suit :
Puis, nous avons ajouté une validation de date dans le tableau $filters avec la configuration suivante :
'dateNaissance'=>[
'filter'=>FILTER_VALIDATE_REGEXP,
'options'=>[
'regexp'=>'#^[0-9]{2}/[0-9]{2}/[0-9]{4}$#',
]
]
Enfin, pour afficher la date validée et prête à être insérée, nous utilisons :
echo 'Date de naissance : '.$result['dateNaissance'].'
';
La sortie de programme :
Après avoir effectué ces modifications, lorsqu’on teste avec une adresse e-mail correcte et un âge compris entre 20 et 60 ans, mais qu’on entre une date telle que 2000, un message d’erreur s’affiche indiquant « date de naissance invalide ». Voici un exemple d’affichage :
Code Source Complet PHP 8
Formulaire
FILTER_VALIDATE_EMAIL,
'age'=>[
'filter'=>FILTER_VALIDATE_INT,
'options'=>[
'min_range'=>20,
'max_range'=>60
]
],
'dateNaissance'=>[
'filter'=>FILTER_VALIDATE_REGEXP,
'options'=>[
'regexp'=>'#^[0-9]{2}/[0-9]{2}/[0-9]{4}$#',
]
]
];
$result = filter_input_array(INPUT_POST,$filters);
$controle_presence=0;
$controle_filtre=0;
foreach($filters as $filter=>$value){
if(empty($_POST[$filter])){
echo ''.ucfirst($filter).' est vide
';
$controle_presence+=1;
}elseif($result[$filter] === false){
echo ''.ucfirst($filter).' invalide !
';
$controle_filtre+=1;
}
}
if(($controle_presence==0)&& ($controle_filtre ==0)){
echo 'Insérer dans une BDD
';
echo 'Email : '.$result['email'].'
';
echo 'Age : '.$result['age'].'
';
echo 'Date de naissance : '.$result['dateNaissance'].'
';
}
}
?>
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui. Découvrez des cours variés pour tous les niveaux !
Conclusion
En conclusion, les filtres de vérification et de nettoyage en PHP 8 offrent une solution robuste pour garantir l’intégrité et la sécurité des données dans vos applications web. Que vous travailliez sur la validation des entiers, la vérification des emails, ou le nettoyage des chaînes de texte, PHP 8 vous fournit les outils nécessaires pour accomplir ces tâches efficacement. En utilisant ces filtres de manière judicieuse, vous pouvez non seulement améliorer la qualité de vos données, mais aussi renforcer la protection de votre application contre les attaques potentielles. Adopter ces pratiques est essentiel pour tout développeur souhaitant garantir des standards élevés de sécurité et de performance dans le développement web moderne. Et par la suite nous allons entamer un exercice pratique de PHP 8.