FriconiX
Des milliers de pictogrammes gratuits dessinés avec amour !

Partie 8. Gestion des erreurs

Redirection

Nous allons améliorer la gestions des erreurs de façon à afficher un message plus conviviale pour l'utilisateur. Dans la fonction errorManager($message, $url=NULL), modifier le code afin que l'utilisateur soit redirigé instantanément en non plus au bout de 5 secondes.

Si l'url passée en paramètre est nulle, l'utilisateur sera redirigé vers la page d'accueil par défaut.

Testez vos changements en chargeant directement la page new.php. Vous devriez être redirigé vers la page d'accueil du site.

Sessions

Dans la fonction errorManager, au lieu d'afficher directement le message d'erreur, nous allons le stoquer dans une variable de session que nous afficherons plus tard.

Modifier la fonction errorManager afin que le message soit enregistré dans la variable $_SESSION['errorMessage].

Ajoutez l'initialisation des sessions sur tout vos scripts PHP sauf dans la bibliothèque.

Affichez provisoirement le contenu de la variable de session sur la page d'accueil et vérifiez que le message est bien enregistré lorsque vous chargez directement le script new.php :

Message d'erreur affiché sur la page d'accueil

Affichage des erreurs

Dans la bibliothèque lib\lib.php, ajoutez une fonction displayError(). Cette fonction teste si la variable $_SESSION['errorMessage] est vide ou non.

Si la variable contient un message, elle affiche le message d'erreur dans une Alert Bootstrap.

Dans la page d'accueil (index.php) et dans la page de la liste de course (list/index.php), ajoutez un appel à la fonction avant l'affichage du titre. Chargez les scripts new.php et list/add.php, le message devrait apparaitre conformément à l'illustration suivante. Vous pouvez ajouter une icône avant le texte :

Message d'erreur affiché dans une Alert Bootstrap

Effacer l'erreur

En vous inspirant de l'exemple de la documentation Bootstrap , ajoutez une croix afin que l'utilisateur puisse supprimer le message :

Un bouton pour effacer le message d'erreur

Vérifiez que lorsque l'on clique sur la croix, le message s'efface.

Effacer l'erreur (vraiment)

Rechargez la page, que constatez-vous ? Le message d'erreur revient car il est toujours enregistré dans la variable de session.

Complétez la fonction displayError() afin que la variable de sessions $_SESSION['errorMessage] soit effacée après l'affichage. Testez votre modification.

Plus d'erreurs ?

Créez une liste de courses et saisissez quelques articles. Entrez un nouvel article contenant une ou plusieurs balises HTML, par exemple :

Que constatez-vous ?

Réglez ce problème grâce à la fonction htmlspecialchars.

Depuis la page d'accueil, créez une nouvelle liste qui s'appelle : "<!--".

Corrigez ce problème en utilisant la même méthode que pour les noms des articles.

Voir aussi


Dernière mise à jour : 03/02/2020