Chapitre 12 : Formulaires et PHP
Apprenez à gérer les formulaires HTML avec PHP, à valider et sécuriser les données utilisateurs.
1. Créer un formulaire HTML
Les formulaires HTML sont essentiels pour interagir avec les utilisateurs. Voici un exemple simple :
<form method="POST" action="traitement.php">
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" required>
<label for="email">Email :</label>
<input type="email" name="email" id="email" required>
<input type="submit" value="Envoyer">
</form>
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" required>
<label for="email">Email :</label>
<input type="email" name="email" id="email" required>
<input type="submit" value="Envoyer">
</form>
Note : L'attribut
method="POST" indique que les données seront envoyées par la méthode POST. On peut aussi utiliser GET pour les envoyer dans l'URL.
2. Traitement côté PHP
Dans le fichier traitement.php :
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
echo "Bonjour $nom, votre email est $email.";
}
?>
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = $_POST["nom"];
$email = $_POST["email"];
echo "Bonjour $nom, votre email est $email.";
}
?>
Important : Il est essentiel de valider et sécuriser les données reçues, car un utilisateur malveillant peut envoyer n'importe quoi.
3. Validation des données
Avant d'utiliser les données, il faut les vérifier :
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = trim($_POST["nom"]);
$email = trim($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Adresse email invalide.";
} elseif (strlen($nom) < 2) {
echo "Le nom est trop court.";
} else {
echo "Données valides. Bienvenue $nom.";
}
}
?>
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nom = trim($_POST["nom"]);
$email = trim($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Adresse email invalide.";
} elseif (strlen($nom) < 2) {
echo "Le nom est trop court.";
} else {
echo "Données valides. Bienvenue $nom.";
}
}
?>
4. Protéger contre les failles (sécurité)
- XSS : échappez toujours le HTML avec
htmlspecialchars() - Injection : vérifiez les entrées et utilisez PDO pour les bases de données
Exemple d'échappement :
<?php
echo "Bonjour " . htmlspecialchars($nom);
?>
echo "Bonjour " . htmlspecialchars($nom);
?>
5. Pré-remplir un formulaire
Très utile en cas d'erreur :
<input type="text" name="nom" value="<?php echo htmlspecialchars($_POST['nom'] ?? ''); ?>">
6. À retenir
- Les formulaires HTML envoient les données au script PHP via
GETouPOST. - PHP permet de les récupérer via
$_GETou$_POST. - Il faut toujours valider et sécuriser les données saisies.
- Utilisez
htmlspecialchars()pour éviter les attaques XSS. - Pré-remplir les champs aide à améliorer l'expérience utilisateur en cas d'erreur.