Chapitre 13 : Formulaires HTML avec PHP

Écouter la leçon Lecture audio assistée par IA

1. Objectif d’un formulaire

Un formulaire HTML permet à l’utilisateur de saisir des données (texte, email, fichier...) PHP permet ensuite de récupérer, traiter et sécuriser ces données.

2. Structure de base d’un formulaire

<form action="traitement.php" method="POST">
  <input type="text" name="nom">
  <input type="submit" value="Envoyer">
</form>

✔️ action : fichier de traitement PHP
✔️ method : POST (recommandé) ou GET

3. Récupérer les données côté PHP

<?php
$nom = $_POST["nom"];
echo "Bonjour $nom !";
?>

✔️ $_POST ou $_GET sont des tableaux superglobaux.

4. Sécuriser les données utilisateur

Il faut toujours valider/sécuriser ce que l’utilisateur envoie :

$nom = htmlspecialchars(trim($_POST["nom"]));
  • trim() : supprime les espaces
  • htmlspecialchars() : évite les injections HTML

5. Champs obligatoires

Tu peux les vérifier côté PHP :

if (empty($_POST["nom"])) {
  echo "Le champ nom est requis.";
}

6. Exemple complet

1. Formulaire (index.php)

<form method="POST" action="traitement.php">
  <label>Nom : <input type="text" name="nom"></label>
  <input type="submit" value="Envoyer">
</form>

2. Traitement (traitement.php)

<?php
if (!empty($_POST["nom"])) {
  $nom = htmlspecialchars($_POST["nom"]);
  echo "Bonjour $nom !";
} else {
  echo "Merci de saisir votre nom.";
}
?>

7. Types d’entrées courants

  • text, email, password, checkbox
  • radio, file, textarea, select

Conclusion

Grâce à PHP, tu peux interagir avec les utilisateurs et exploiter leurs données. Dans le prochain chapitre, tu apprendras à travailler avec les fichiers (lire, écrire...).

Évaluation des acquis

Quiz du chapitre 13

Correction immédiate
Q1 Quelle superglobale PHP est utilisée pour récupérer les données d'un formulaire envoyé avec la méthode POST ?
Q2 Quelle fonction PHP est recommandée pour éviter les injections HTML lors de l'affichage des données utilisateur ?
Ateliers pratiques & Projets

Testez vos compétences avec nos exercices guidés et le tuteur IA.

Ateliers pratiques & Corrigés détaillés

Ateliers pratiques & Corrigés

#1 — Méthode GET
Atelier #1

Crée un formulaire simple envoyant un 'nom' via GET et affiche-le.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<!-- Formulaire --> <form method="GET"> <input type="text" name="nom" placeholder="Votre nom"> <button>Envoyer</button> </form> <?php if (isset($_GET['nom'])) { echo "Bonjour " . htmlspecialchars($_GET['nom']); } ?>
#2 — Méthode POST
Atelier #2

Crée un formulaire de connexion (login/password) via POST.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<form method="POST"> <input type="text" name="login" placeholder="Login"> <input type="password" name="pass" placeholder="Password"> <button>Connexion</button> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { echo "Formulaire soumis !"; } ?>
#3 — Sécurisation XSS
Atelier #3

Montre pourquoi et comment utiliser htmlspecialchars() sur l'affichage des données.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<?php $message = "<script>alert('Hacked')</script>"; // Mauvais : echo $message; // Bon : echo htmlspecialchars($message); ?>
#4 — Input type number
Atelier #4

Récupère un âge via un champ number et vérifie s'il est numérique avec is_numeric().

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<form method="POST"> <input type="number" name="age"> <button>Envoyer</button> </form> <?php if (isset($_POST['age']) && is_numeric($_POST['age'])) { echo "Âge valide : " . $_POST['age']; } ?>
#5 — Boutons radio
Atelier #5

Gère un choix de civilité (M. ou Mme) avec des boutons radio.

Correction instantanée et bienveillante
Diagnostic du tuteur IA Weegosoft :
Consulter la solution type du formateur
Solution de référence :
<form method="POST"> <label><input type="radio" name="civilite" value="M."> M.</label> <label><input type="radio" name="civilite" value="Mme"> Mme</label> <button>Valider</button> </form> <?php if (isset($_POST['civilite'])) { echo "Civilité : " . $_POST['civilite']; } ?>
Besoin d'aide ?
Tuteur Virtuel
Bonjour ! Je suis votre tuteur virtuel. Comment puis-je vous aider avec ce cours aujourd'hui ?
Historique des conversations
Chargement...