Bonjour !

J'ai crée un formulaire d'inscription pour mon site web, ave diverse info à remplir, dont un pseudonyme une adresse e-mail le tout enregistré dans une BDD MySQL.

Donc avant d'enregistrer les infos dans ma BDD, je vérifie si les variables $pseudo et $mail ne sont pas déjà présentes, et don déjà utilisées.

Cependant, même après une vérification avec in_array on peut quand même s'inscrire avec un pseudo déjà en cours d'utilisations !

Je suis désespéré, j'ai passé ma soirée à parcourir la doc, mais rien. x(

Voilà mon code source :
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
 
    <?php
 
        include('config.inc.php');
 
        // ON VERIFIE S'IL N'Y A PAS DE HTML AVEC  htmlspecialchars
        $pseudo = htmlspecialchars($_POST['pseudo']);
        $pass = htmlspecialchars($_POST['pass']);
        $pass2 = htmlspecialchars($_POST['pass2']);
        $mail = htmlspecialchars($_POST['mail']);
        $sexe = htmlspecialchars($_POST['sexe']);
        $faction = htmlspecialchars($_POST['faction']);
        $race = htmlspecialchars($_POST['race']);
        $mers = htmlspecialchars($_POST['mers']);
 
            // On réecrit les vriables
        if ($faction == 'Chasseur'){
                $faction = 'Chasseur de prime';
                }
 
        switch ($race) {
 
        case 'humain': 
        $race = 'Humain';
        break;
 
        case 'geant': 
        $race = 'Géant';
        break;
 
        case 'h_poisson': 
        $race = 'Homme poisson';
        break;
        }
 
        switch ($mers) {
 
        case 'east': 
        $mers = 'East Blue';
        break;
 
        case 'north': 
        $mers = 'North Blue';
        break;
 
        case 'south': 
        $mers = 'South Blue';
        break;
 
        case 'west': 
        $mers = 'West Blue';
        break;
        }
 
 
        // ON VERIFIE SI LE VISITEUR A BIEN RENTRE LES INFORMATIONS DEMANDEES         
        if ($pseudo != null)
            {
                $valid_pseudo = true;
            }
        else 
            {
                $valid_pseudo = false;
            }
 
        if ($faction != null)
            {
                $valid_faction = true;
            }
        else 
            {
                $valid_camps = false;
            }
 
        if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $mail))
            {
                $valid_mail = true;
            }
        else 
            {
                $valid_mail = false;
            }
 
        if (($pass != null) AND ($pass2 != null))
            {
                if ($pass == $pass2){
                $valid_pass = true;}
            }
        else 
            {
                $valid_pass = false;
            }
 
        if ($race != null)
            {
                $valid_race = true;
            }
        else 
            {
                $valid_race = false;
            }
        if($mers != null)
            {
                $valid_mers = true;
            }
        else 
            {
                $valid_mers = false;
            }
 
        // ON REGROUPE LE TOUT DANS UNE SEUL ET MEME VARIABLE 
 
        $valid_inscription = false; // Par défaut l'inscription est fausse
 
        if($valid_pseudo AND $valid_pass AND $valid_faction AND $valid_mail AND $valid_race AND $valid_mers)
            {
                $valid_inscription = true;
            }
 
        // CONNEXION A MYSQL  SI L'UTILISATEURS A BIEN RENTRER LES INFOS
 
        if ($valid_inscription)
    {
    mysql_connect("localhost", "$login_bdd", "$mdp_bdd"); 
    mysql_select_db("wakou");
 
 
        $reponse = mysql_query("SELECT * FROM joueur"); 
        $donnees = mysql_fetch_array($reponse);
 
 
 
        // ON RECHERCHE SI LES COORDONNES DU JOUEUR NE SONT PAS DEJA PRSENTE 
 
            if ((in_array("$pseudo", $donnees) == true) OR (in_array("$mail", $donnees) == true))
                {
                    // ON ENLEVE LES '/' AFIN D'EVITER LES INJECTIONS SQL 
                    $pseudo = mysql_real_escape_string($pseudo);
                    $pass = mysql_real_escape_string($pass);
                    $mail = mysql_real_escape_string($mail);
                    $sexe = mysql_real_escape_string($sexe);
                    $faction = mysql_real_escape_string($faction);
                    $race = mysql_real_escape_string($race);
                    $mers = mysql_real_escape_string($mers);
 
                    mysql_query("INSERT INTO joueur VALUES('', '$pseudo', '$pass', '$mail', '$sexe', '$faction', '$race', '$mers', '1', '0')");
 
                    $message = '<h3>Félicitation ! Vous êtes désormais inscris. ;o)</h3>';            
                }
            else if ($valid_inscription == true)
                {                                        
                    $message = '<h3><span style="color:red; align-text:center;">Cette adresse mail et/ou ce pseudo sont déjà pris</span></h3>';
                    $valid_inscription = false;
                }
 
 
 
    mysql_close(); 
    }
 
 
        // ENSUITE, ON ASSIGNE UNE VALEUR A CHAQUE  "" ERREUR ""
 
        if($valid_pseudo == false)
            {
                $pseudo = '<span style="color:red">Pseudo inéxistant ou invalide</span>';
            }
        if($valid_pass == false)
            {
                $pass = '<span style="color:red">Mot de passe inéxistant ou invalide</span>';
            }
        if($valid_mail == false)
            {
                $mail = '<span style="color:red">E-mail inéxistant ou invalide</span>';
            }
        if($valid_faction == false)
            {
                $faction = '<span style="color:red">Choix inéxistant</span>';
            }
        if($valid_race == false)
            {
                $race = '<span style="color:red">Choix inéxistant</span>';
            }
        if($valid_mers == false)
            {
                $mers = '<span style="color:red">Choix inéxistant</span>';
            }
    ?>
Merci (beaucoup) d'avance =)