Bonjour,

Je suis face à un problème.

J'ai un petit formulaire simple, Pseudo>Email>Message, si il y a des erreurs, alors il me retourne juste au dessus l'erreur grâce à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<?php if(!empty($errors)): ?> 
            <div class="alert alert-danger">   
                <?php foreach($errors as $error): ?>
                     <?= $error; ?><br>
                <?php endforeach; ?>
            </div>
<?php endif; ?>
Par contre là ou j'ai un problème, c'est que mon formulaire est en milieu de page.... et quand il y a des erreurs, alors il remonte tout en haut de la page....je voudrais qu'il revienne au niveau des erreurs de mon form... j'ai bien mis mon ID sur le <form> pour qu'il revienne là, mais, je ne sais pas ou mettre un header('Location') pour les erreurs....

J'arrive à le faire pour le message de succés, sauf que le message de succés c'est sous form d'un $_SESSION['flash'], et ensuite j'ai mon header('Location: #1'); mais je n'arrive pas à le faire avec les erreurs...

Je pourrais faire les erreurs avec mon système de $_SESSION flash mais le problème c'est qu'il va me retourner qu'une seule erreur à la fois, et non pas toute.... sauf si vous avez une solution....

Si vous avez une solution pour faire un système de $_SESSION['flash']['success'] et un $_SESSION['flash']['erreur'] avec tous les messages qui s'affichent, je suis preneur...

Cordialement.

Voici le code de ma page index.php:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
 
 
<?php
session_start();
	require 'db/database.php';
 
 
/* ON RECUPERE LES COMMENTAIRES */
 
	$commentaires = $db->query("SET NAMES utf8");
	$commentaires = $db->query('SELECT pseudo,time, message FROM commentaires ORDER BY id DESC');
	$coms = $commentaires->fetchAll();
 
 
if(!empty($_POST)) {
$errors = array();
 
if(empty($_POST['pseudo'])) {
  $errors['pseudo'] = "Vous devez rentrer un pseudo valide";
} else {
  $req = $db->prepare('SELECT id FROM commentaires WHERE pseudo = ?');
  $req->execute([$_POST['pseudo']]);
}
 
if(empty($_POST['email'])) {
  $errors['email'] = "Vous devez rentrer un email valide";
} else {
  $req = $db->prepare('SELECT id FROM commentaires WHERE email = ?');
  $req->execute([$_POST['email']]);
}
 
if(empty($_POST['message'])) {
  $errors['message'] = "Vous devez rentrer un message valide";
} else {
  $req = $db->prepare('SELECT id FROM commentaires WHERE message = ?');
  $req->execute([$_POST['message']]);
}
 
if(empty($errors)){
 
  $insertmsg = $db->prepare('INSERT INTO commentaires(pseudo, email, message) VALUES(?, ?, ?)');
  $insertmsg ->execute(array($_POST["pseudo"], $_POST["email"], $_POST["message"]));
  // ENVOI D'UN EMAIL POUR NOTIFICATION ADMIN //
  $_SESSION['flash']['success'] = "Le commentaire à bien été posté.";
  header('Location: #1');
  die();
}
}
 
?>
 
<?php include 'partials/header.php'; ?>
 
 
	<h1 class="text-logo">Poster un commentaire</h1>
		<form id="1" class="form-accueil-contact" action="index.php" method="POST">
 
 
        <?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; ?>
 
 
        <?php if(!empty($errors)): ?> 
            <div class="alert alert-danger">   
                <?php foreach($errors as $error): ?>
                     <?= $error; ?><br>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>
 
 
 
        	<div class="form-group">
            <label>Pseudo</label>
					  <input type="text" class="form-control" name="pseudo">	
					</div>
 
		      <div class="form-group">
            <label>E-mail</label>
            <input type="text" class="form-control" name="email">  
          </div>
 
 
          <div class="form-group">
            <label>Message</label>
            <textarea type="text" class="form-control" name="message"></textarea> 
          </div>
 
          <div class="form-group">
            <button class="bouton bouton-success" type="submit" class="form-bouton"><span class="glyphicon glyphicon-send"> ENVOYER</span></button>
          </div>
 
 
 
		<div class="text-titre-commentaires">Commentaires</div>
 
<!-- ON AFFICHE LES COMMENTAIRES -->
 
				<?php
					foreach ($coms as $c) {
			                echo '<tr>';
							echo '<td><img class="avatar-accueil-commentaires" src="images/icons/avatar.png"><span class="label-accueil-commentaires">' . $c['pseudo'] . '</span></td><br>';
							echo '<td><span class="time-accueil-commentaires">' . $c['time'] . '</span></td><br><br>';
							echo '<td><div class="separateur"></div></td>';
							echo '<td><span class="message-accueil-commentaires">' . $c['message'] . '</span></td><br><br><br><br>';
							echo '</td>';
							echo '</tr>';
					}
				?>
 
		</form>
 
	<br><br><br><br><br><br><br><br><br><br>
 
</div> <!-- FIN div WRAPPER -->
 
 
 
 
</body>
</html>