Module 13 : Validation des formulaires en PHP**
Module 13 : Validation des formulaires en PHP
1. Validation des données avec PHP :
Exemple simple de validation de formulaire :
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = $_POST['nom'];
$email = $_POST['email'];
$mot_de_passe = $_POST['mot_de_passe'];
// Validation des champs
if (empty($nom)) {
$errors[] = "Le champ nom est requis.";
}
if (empty($email)) {
$errors[] = "Le champ email est requis.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "L'email n'est pas valide.";
}
if (empty($mot_de_passe)) {
$errors[] = "Le champ mot de passe est requis.";
}
if (empty($errors)) {
// Tout est ok, traiter les données
echo "Formulaire soumis avec succès.";
// Ici, vous pouvez par exemple enregistrer les données en base de
données
}
}
2. Exercice avec formulaire HTML :
Formulaire de base :
<form method="post" action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Nom : <input type="text" name="nom">
<br>
Email : <input type="text" name="email">
<br>
Mot de passe : <input type="password" name="mot_de_passe">
<br>
<input type="submit" value="Soumettre">
</form>
3. Affichage des erreurs :
Afficher les erreurs si elles existent :
if (!empty($errors)) {
foreach ($errors as $error) {
echo "<p style='color: red;'>$error</p>";
}
}
4. Utilisation de filter_var pour la validation :
Exemple avec filter_var :
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// L'email est valide
} else {
$errors[] = "L'email n'est pas valide.";
}
5. Validation de la longueur et des champs vides :
Validation avec la fonction strlen :
if (strlen($nom) < 3) {
$errors[] = "Le nom doit comporter au moins 3 caractères.";
}
6. Hachage du mot de passe :
Hachage avec password_hash :
$mot_de_passe_hash = password_hash($mot_de_passe, PASSWORD_DEFAULT);
7. Protection contre les injections :
Utilisation de htmlspecialchars pour sécuriser les données :
$nom = htmlspecialchars($_POST['nom']);
$email = htmlspecialchars($_POST['email']);
8. Validation avec expressions régulières :
Validation de l'email avec une regex :
if (!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/",
$email)) {
$errors[] = "L'email n'est pas valide.";
}
9. Finalisation du formulaire sécurisé :
Formulaire sécurisé avec toutes les validations :
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = htmlspecialchars($_POST['nom']);
$email = htmlspecialchars($_POST['email']);
$mot_de_passe = $_POST['mot_de_passe'];
$errors = [];
if (empty($nom)) {
$errors[] = "Le champ nom est requis.";
}
if (empty($email)) {
$errors[] = "Le champ email est requis.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "L'email n'est pas valide.";
}
if (empty($mot_de_passe)) {
$errors[] = "Le champ mot de passe est requis.";
}
if (empty($errors)) {
// Hacher le mot de passe
$mot_de_passe_hash = password_hash($mot_de_passe, PASSWORD_DEFAULT);
// Exemple de sauvegarde en base de données ici
echo "Formulaire soumis avec succès.";
} else {
foreach ($errors as $error) {
echo "<p style='color: red;'>$error</p>";
}
}
}
Ce module vous a permis d’apprendre à valider des données provenant de formulaires PHP, en
appliquant des techniques pour sécuriser les entrées utilisateur et prévenir les erreurs courantes
comme les injections SQL, les données non valides, et les champs manquants. Si vous avez besoin
d’explications supplémentaires ou d’exemples spécifiques, je suis à votre disposition !