Skip to content

Ajouter une tâche

Objectifs pédagogiques

  • Comprendre comment créer un formulaire HTML.
  • Utiliser la superglobale $_POST pour transmettre des données côté serveur.
  • Ajouter une entrée dans un tableau existant dynamiquement.
  • Sécuriser les données saisies par l’utilisateur.

Introduction

Dans cette étape, l’objectif est de permettre à un utilisateur d’ajouter une tâche via un formulaire HTML.
Cela introduit un premier point d’entrée utilisateur, manipulé grâce à la superglobale $_POST.

Le formulaire transmet les données au serveur, où PHP les récupère, les sécurise, puis met à jour la liste des tâches.

Exercice pratique

  1. Créer un fichier add-task.php.
  2. Afficher un formulaire contenant :
    • Un champ texte nommé task
    • Un bouton de soumission
  3. Lorsque le formulaire est soumis :
    • Vérifier que le champ task est bien rempli
    • Ajouter la valeur au tableau $tasks
  4. Afficher à l’écran l’ensemble des tâches, y compris la nouvelle.

Correction

Visualiser la correction

1. Définition du tableau initial

php
<?php
$tasks = [
  'Faire les courses',
  'Réviser PHP',
  'Appeler Jean'
];
?>

Le tableau $tasks contient les tâches existantes.
Il est codé en dur ici pour simplifier l’exercice.


2. Formulaire HTML

php
<form method="POST">
  <label for="task">Nouvelle tâche :</label>
  <input type="text" name="task" id="task">
  <button type="submit">Ajouter</button>
</form>
  • Le formulaire utilise method="POST" pour envoyer les données.
  • Le champ task sera accessible via $_POST['task'].

3. Traitement de la soumission

php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['task'])) {
  $task = htmlspecialchars($_POST['task']);
  $tasks[] = $task;
}
?>
  • $_SERVER['REQUEST_METHOD'] permet de vérifier si la requête est bien un POST.
  • htmlspecialchars() protège contre l’injection de HTML.
  • La tâche est ensuite ajoutée au tableau $tasks.

4. Affichage du tableau

php
<ul>
  <?php foreach ($tasks as $task): ?>
    <li><?= $task ?></li>
  <?php endforeach; ?>
</ul>

Cette boucle foreach permet de générer dynamiquement une liste HTML à partir du tableau.