Manipulation des données : gestion des erreurs
Notes de cours
- Manipulation des données
- Problèmes liés à la manipulation des données
- Expression régulières
Travail personnel
Objectifs
L'exercice est une application directe de l'architecture présentée en cours pour la manipulation des données.
Exercice 1 — Gestion d'un formulaire de saisie avec messages d'erreur #
But : Mettre en place un formulaire de saisie permettant d'enregistrer des personnes en gérant correctement les messages d'erreur. Les données seront stockées dans un fichier texte nommé sauvegarde.txt
. Les actions à traiter sont dans le squelette.php
Récupération des fichiers
Téléchargez cette archive qui contient un répertoire nommé Personne
, comprenant un exemple de formulaire de saisie.
Étapes à réaliser
-
Gestion des données transmises par le formulaire de saisie (formulairePersonne.php)
Compléter le formulaire disponible dans l'archive pour saisir les informations d'une personne : nom et date de naissance.
-
Gestion des erreurs
Assurez-vous que tous les champs sont correctement remplis et que les types de données sont valides. La date de naissance doit être une date valide. Pour cela, on utilisera la fonction
controlerDate
qui se trouve dansdonnees.php
. Gérez les messages d'erreur de manière appropriée si une des conditions n'est pas remplie. Dans le cas contraire, afficher un message du type : La personneJean Paul est né le 10-12-2001
-
Implémentation de la classe Personne
Créez une classe
Personne
dans le fichierdonnees.php
qui gère les données saisies par l'utilisateur.- Attributs :
nom
(string) etdateN
(string). - Méthodes :
__construct()
: Initialise les attributs de la classe.__toString()
: Renvoie une chaîne de caractères représentant la personne (format :Nom (Tabulation) Date de naissance
).enregistrer()
: Enregistre la personne (même format que __toString ) dans le fichiersauvegarde.txt
.
La création d'une instance Personne se fera quand il n'y a plus de messages d'erreurs. Ensuite, il faut sauvengarder les données correctement saisies.
Voici un exemple d'utilisation de la classe
Personne
pour enregistrer une personne saisie :$p = new Personne($nom, $dateN); $p->enregistrer();
- Attributs :
-
Affichage des personnes enregistrées
- Ajouter l'action
afficher
: un lien'Affichage des personnes'
dans le menu principal ans le fichiersquelette.php
. - Dans
index.php
, gérer cette action et afficher les données sauvegardée danssauvegarde.txt
sous forme de tableau HTML.
Pour commencer, lisez le contenu du fichier
sauvegarde.txt
à l'aide defile_get_contents()
. Ensuite, découpez ce contenu en lignes avecexplode(PHP_EOL, ...)
. Pour chaque ligne non vide, séparez le nom et la date en utilisantexplode(" ", )
et appliquezhtmlspecialchars()
à chaque donnée afin d'assurer un affichage sécurisé. - Ajouter l'action
Remarques :
Logique d'enregistrement et d'affichage- Action
saisir
, on affiche le formulaire et on enregistre les données danssauvegarde.txt
si elles sont valides. - Action
afficher
, on affiche toutes les personnes enregistrées dans un tableau HTML.
Pour enregistrer dans un fichier texte :
file_put_contents('sauvegarde.txt', $p, FILE_APPEND);
Pour lire les données depuis le fichier texte :
$F = file_get_contents('sauvegarde.txt');