Module 10 : Manipulation des formulaires et
validation en PHP**
Module 10 : Manipulation des formulaires et validation en PHP
1. Traitement des formulaires en PHP :
Affichage d’un formulaire simple :
<form action="[Link]" method="post">
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom">
<br>
<label for="email">Email :</label>
<input type="email" name="email" id="email">
<br>
<input type="submit" value="Envoyer">
</form>
Traitement du formulaire dans [Link] :
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$nom = htmlspecialchars($_POST['nom']); // Nettoyer les données pour
éviter les injections
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); //
Filtrage de l'email
if (!empty($nom) && !empty($email) && filter_var($email,
FILTER_VALIDATE_EMAIL)) {
echo "Nom : $nom<br>Email : $email";
} else {
echo "Veuillez remplir tous les champs correctement.";
}
}
2. Validation des formulaires :
Validation des champs requis :
function validerChamps($champs) {
foreach ($champs as $champ => $valeur) {
if (empty($valeur)) {
return false; // Champ requis non rempli
}
}
return true;
}
Validation de l'email :
function validerEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL); // Valide le format
de l'email
}
3. Messages d'erreur personnalisés :
Exemple de traitement avec messages d'erreur :
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$nom = htmlspecialchars($_POST['nom']);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if (!validerChamps(['nom' => $nom, 'email' => $email]) ||
!validerEmail($email)) {
echo "Veuillez remplir tous les champs correctement.";
} else {
echo "Formulaire soumis avec succès.<br>Nom : $nom<br>Email :
$email";
}
}
4. Utilisation de isset() et empty() pour vérifier la présence des données :
Vérification de la présence des données :
if (isset($_POST['nom']) && isset($_POST['email'])) {
// Traitement des données
}
5. Utilisation de trim() pour nettoyer les espaces vides :
Nettoyage des données :
$nom = trim($_POST['nom']);
$email = trim($_POST['email']);
6. Exercice : Formulaire de contact avec validation :
Code du formulaire de contact :
<form action="[Link]" method="post">
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" required>
<br>
<label for="email">Email :</label>
<input type="email" name="email" id="email" required>
<br>
<textarea name="message" id="message" required placeholder="Votre
message..."></textarea>
<br>
<input type="submit" value="Envoyer">
</form>
Code de traitement de [Link] :
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$nom = htmlspecialchars(trim($_POST['nom']));
$email = filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL);
$message = htmlspecialchars(trim($_POST['message']));
if (!validerChamps(['nom' => $nom, 'email' => $email, 'message' =>
$message]) || !validerEmail($email)) {
echo "Veuillez remplir le formulaire correctement.";
} else {
// Envoyer un email ou enregistrer dans une base de données
echo "Merci, $nom. Votre message a été envoyé avec succès.";
}
}
7. Techniques avancées : AJAX et jQuery pour la validation des formulaires :
Exemple avec AJAX :
$(document).ready(function() {
$('#formulaire').on('submit', function(e) {
[Link](); // Empêche l'envoi du formulaire par défaut
$.ajax({
url: '[Link]',
method: 'POST',
data: $(this).serialize(),
success: function(response) {
$('#message').html(response); // Affiche la réponse
}
});
});
});
Ce module vous a présenté la gestion des formulaires en PHP, la validation de données, et l’importance
de sécuriser les formulaires contre les erreurs et les attaques potentielles comme les injections SQL ou
le CSRF. Si vous avez besoin de plus de détails ou de clarification, n’hésitez pas à demander !