Salut, j’essaie de faire un site façon MVC pour info...
Si je valide mon formulaire inscription à vide et je voudrais qu'il m'affiche qu'il est incomplet, mais là il me l'affiche direct sans avoir fais le submit.
Alors, ma question est quel est le meilleur moyen pour créer les messages d'erreurs ou de réussites suite au divers vérifications pour un formulaire et il y en a pas mal à faire tout de même.
mais je pense que y'a beaucoup mieux à faire, éventuellement gérer tout ça avec les sessions aussi.
Merci par avance pour votre aide et vos conseils.
Controleur Global:
Controleur pour le login et inscription :
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 <?php session_start(); require_once("modele/inscription.php"); include("vue/entete.php"); include("vue/header.php"); include("vue/menu.php"); if(!isset($_REQUEST['action'])){ $action = 'accueil'; }else{ $action = $_REQUEST['action']; } switch($action){ case 'accueil': include("vue/accueil.php"); break; case 'login': include("controleur/c_authentification.php"); break; case 'inscription': include("controleur/c_authentification.php"); break; } include("vue/footer.php"); ?>
Formulaire d'inscription :
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 <?php switch($action){ case 'login': include("vue/login.php"); if(isset($_POST['login']) && !empty($_POST['login']) && isset($_POST['pass']) && !empty($_POST['pass'])){ }else{ } break; case 'inscription': if(isset($_POST['name_login']) && !empty($_POST['name_login']) && isset($_POST['name_pwd']) && !empty($_POST['name_pwd']) && isset($_POST['name_pwd_confirm']) && !empty($_POST['name_pwd_confirm']) && isset($_POST['email']) && !empty($_POST['email']) ){ $nom = trim($_POST['name_login']); $pass = trim($_POST['name_pwd']); $pass2 = trim($_POST['name_pwd_confirm']); $mail = trim($_POST['email']); //On vérifie à nouveau si les valeurs des champs ne sont pas vide. if(empty($nom) || empty($pass) || empty($pass2) || empty($mail)){ $message_error = "Le formulaire est incomplet !"; //On vérifie que les mots de passe saisie sont identique }else if($pass != $pass2){ $message_error = "Le mot de passe n'est pas identique"; //On vérifie que le login saisie n'est pas déjà présent dans la base. }else if(check_user_exist($nom)){ $message_error = "Le login $nom existe déjà"; } //Insertion du nouvel utilisateur dans la base. else{ $message = insert_users($nom, $pass, $mail); include("vue/login.php"); } }else{ $message_error = "Le formulaire est incomplet !"; include("vue/inscription.php"); } break; } ?>
Alors j'avais pensé rajouter ce code à la fin du controleur pour l'inscription:
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 <a href="index.php?action=login">Retour Authentification<a/> <fieldset> <legend>Inscription : </legend> <?php if(isset($message_error)){ echo "<p class='message_err'>$message_error</p>"; } ?> <form action="index.php?action=inscription" method="post"> <p><label for="name_login">Login :</label><input type="text" name="name_login" id="name_login" /></p> <p><label for="name_pwd">Mot de passe :</label><input type="password" name="name_pwd" id="name_pwd" /></p> <p><label for="name_pwd_confirm">Confirmer mot de passe :</label><input type="password" name="name_pwd_confirm" id="name_pwd_confirm" /></p> <p><label for="email">E-mail :</label><input type="text" name="email" id="email" /></p> <input type="submit" name="submit" value="Inscription" /> </form> </fieldset>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //On vérifie que le formulaire est bien envoyé. //Affichage d'un msg d'erreur si un des champs est vide. }else if(isset($_POST['submit'])){ $message_error = "Le formulaire est incomplet !"; } //Si il existe un msg d'erreur on affiche à nouveau le formulaire d'inscription. if(!empty($message_error)){ include("vue/inscription.php"); //1er affichage du formulaire d'inscription. //Si aucun msg validant l'inscription on affiche le formulaire d'inscription. }else if(empty($message)){ include("vue/inscription.php"); }
Partager