Bonjour à tous,
J'ai un soucis avec mon code PHP, si jamais quelqu'un peut jeter un coup d'oeil, ca m'aiderait beaucoup!
Arrivé au formulaire, alors que je fais volontairement des erreurs pour tester mon code, il ne se passe rien (je me retrouve sur la page register.php mais sans aucune redirection ou quoi).
Mes deux fichiers :
Signup pour le formulaire et écrire à l’utilisateur les différentes erreurs qu'il a fait:
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 <body> <form action="register_c.php" method="post"> <p> <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" /> <?php if ((isset($_GET['ins']))) { if ($_GET['ins'] == 2) { if ($pseudo_wrote==false) { echo "Vous n'avez pas saisi de pseudo !"; } else if ($pseudo_valid==false) { echo "Le pseudo que vous avez saisi n'est pas valide, il doit être composé de lettres et/ou de chiffres (min 3)."; } else if ($pseudo_not_exist==false) { echo "Le pseudo que vous avez saisi est déjà pris par un autre joueur."; } } } ?> <br /> <label for="message">Mot de passe</label> : <input type="password" name="password_1" /> <?php if ((isset($_GET['ins']))) { if ($_GET['ins'] == 2) { if ($pass1_exist==false) { echo "Vous n'avez pas saisi de mot de passe!"; } else if ($same_password==false) { echo "Les mots de passe ne sont pas identiques."; } else if ($pass1_valid==false) { echo "Le mot de passe n'est pas valide, il doit être composé de lettres et/ou de chiffres (min 4)."; } } } ?> <br /> <label for="message">Confirmez le mot de passe</label> : <input type="password" name="password_2" /> <?php if ((isset($_GET['ins']))) { if ($_GET['ins'] == 2) { if ($pass2_exist==false) { echo "Vous n'avez pas confirmé le mot de passe!"; } else if ($same_password==false) { echo "Les mots de passe ne sont pas identiques."; } } } ?> <br /> <label for="message">Adresse e-mail</label> : <input type="text" name="mail" /> <?php if ((isset($_GET['ins']))) { if ($_GET['ins'] == 2) { if ($mail_wrote==false) { echo "Vous n'avez pas saisi d'adresse e-mail!"; } else if ($mail_valid==false) { echo "L'adresse e-mail est incorrecte."; } } } ?> <br /> <input type="submit" name=submit" value="Envoyer" /> </p> </form> </body>
Le contrôleur qui gère les erreurs et redirige, crée l'account etc :
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 <?php //include_once('Modele/register/register_m.php'); if ((isset($_POST['pseudo'])) AND (isset($_POST['password_1'])) AND (isset($_POST['password_2'])) AND (isset($_POST['mail']))) { $pseudo= htmlspecialchars($_POST['pseudo']); $_POST['password_1']= (htmlspecialchars($_POST['password_1'])); $_POST['password_2']= (htmlspecialchars($_POST['password_2'])); $_POST['mail'] = htmlspecialchars($_POST['mail']); try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=hordcraft', 'root', '', $pdo_options); $nb_pseudo = $bdd->query('SELECT COUNT(*) as nb_pseudo FROM account WHERE pseudo=\'$pseudo\''); if (($nb_pseudo == NULL) AND (preg_match("#^[a-zA-Z]+[a-zA-Z0-9 ]{0,}$#", $_POST['pseudo'])) AND (preg_match("#^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail'])) AND (preg_match("#^[a-zA-Z0-9]{4,}$#", $_POST['password_1'])) AND ($_POST['password_1'] == $_POST['password_2'])) { //INSCRIPTION REUSSIE_faire entrer le nouveau compte dans la base de donnée //INSCRIPTION REUSSIE //INSCRIPTION REUSSIE $_POST['password_1']= sha1($_POST['password_1']); header('Location: register.php'); } else if ((isset($_POST['submit'])) AND ($_POST['submit'] == 'Envoyer')) { if (!(isset($_POST['pseudo']))) { $pseudo_wrote = false; } if (!(preg_match("#^[a-zA-Z]+[a-zA-Z0-9 ]{0,}$#", $_POST['pseudo']))); { $pseudo_valid = false; } if ($nb_pseudo != 0) { $pseudo_not_exist=false; } if (!(isset($_POST['mail']))) { $mail_wrote=false; } if (!(preg_match("#^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))) { $mail_valid=false; } if (!(isset($_POST['password_1']))) { $pass1_exist=false; } if (!(isset($_POST['password_2']))) { $pass2_exist=false;; } if(!(preg_match("#^[a-zA-Z0-9]{4,}$#", $_POST['password_1']))) { $pass1_valid=false; } if ($_POST['password_1'] != $_POST['password_2']) { $same_password=false; } ?> <script language="Javascript"> document.location.replace("C:\wamp\www\vue\signup.php?ins=2"); </script>; <?php } $nb_pseudo->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } } //if (!isset($_POST['pseudo']) //essayer NOT(isset) qui peut etre plus rapide. ?>
Merci d'avance si quelqu'un a une idée !![]()
Partager