Bonjour,
J'ai un formulaire d'inscription et je veux afficher les erreurs à la suite comme ceci :
Votre pseudo n'est pas valide
Votre email n'est pas valide
Vous devez rentrer un mot de passe valide
etc...
actuellement, la dernière erreur écrase la précédente (logique), alors j'ai bien tenté de mettre un . devant le = comme ceci :
si je ne remplis aucun champ, ça fonctionne, mais si, par exemple, je remplis le pseudo et pas les autres champs, j'ai deux messages d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php require_once 'inc/functions.php'; session_start(); if (!empty($_POST)) { require_once 'inc/db.php'; if (empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])) { $_SESSION['flash']['danger'] .= "Votre pseudo n'est pas valide (alphanumérique)"; } if (empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $_SESSION['flash']['danger'] .= "Votre email n'est pas valide"; } if (empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']) { $_SESSION['flash']['danger'] .= "Vous devez rentrer un mot de passe valide"; } if (empty($_SESSION['flash'])) { // pas d'erreur donc Création du compte.................. } } require 'inc/header.php'; require 'view/register.php'; require 'inc/footer.php';
Notice: Undefined index: flash
Notice: Undefined index: danger
voici mon code qui affiche les erreurs (dans la page header.php)
Pourquoi j'utilise les sessions pour l'affichage des erreurs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php if(isset($_SESSION['flash'])): ?> <?php foreach($_SESSION['flash'] as $type => $message): ?> <div class="alert alert-<?= $type; ?>"> <?= $message; ?> </div> <?php endforeach; ?> <?php unset($_SESSION['flash']); ?> <?php endif; ?>
Car parfois dans mon appli j'ai besoin d'afficher (les) l'erreur sur une autre page..
quelle est la solution selon vous ?
Merci pour votre aide.








Répondre avec citation





Partager