B09 | Validez avant de faire confiance et encodez avant d’afficher
Niveau débutant · Leçon B09
B09 | Validez avant de faire confiance et encodez avant d’afficher

Résultat : formulaire avec des erreurs claires et une sortie sécurisée.
Concept de base : la validation des entrées et l'échappement des sorties résolvent différents problèmes.
Durée indicative : 100 à 130 minutes.
Pourquoi un champ « obligatoire » nécessite-t-il toujours une validation PHP ?
Car toute demande peut être modifiée en dehors du formulaire. Le serveur doit vérifier la présence, le type, la plage et les règles. Ensuite, lors de l'affichage du texte, vous devez l'encoder pour le contexte HTML.
Connexion précédente
Nous protégerons la forme de B08.
Laboratoire guidé
<?php
$rawHours = $_POST['hours'] ?? null;
$errors = [];
$hours = filter_var($rawHours, FILTER_VALIDATE_INT, [
'options' => ['min_range' => 1, 'max_range' => 40],
]);
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $hours === false) {
$errors['hours'] = 'Escribe un número entre 1 y 40.';
}
?>
Lors de l'impression du texte fourni par l'utilisateur, utilisez htmlspecialchars($value, ENT_QUOTES, 'UTF-8').
Mission moyenne
Validez le nom d'alias, le sujet et les heures. Affichez un message à côté de chaque champ et conservez les valeurs sûres. Essayez des caractères comme < et &.
Extension universitaire
Créez des fonctions distinctes de normalisation, de validation et d’échappement. Définit une matrice d'erreurs de règles d'entrée et explique pourquoi le filtrage ne remplace pas la modélisation de domaine.
Tests
Caractères vides, minimum, maximum, hors plage, décimaux, texte et HTML.
Livraison
Envoyez la matrice, le code, les preuves de six cas et l'explication entre la validation et l'évasion. ENVOYER AU TUTEUR.
Suivant : [B10 — Projet de base] (https://panafrikanphp.blogspot.com/2026/10/b10-basic-php-fr.html).

Comments
Post a Comment