15-02-2009, 07:26 PM
aillala
je vois plusieurs choses qui me chiffonnent dans ton script:
déjà tu ouvres plusieurs fois la connexion à ta base de données (quand tu la rouvres une 2eme fois c'était inutile car elle était déjà ouverte)
Ensuite pour voir si le pseudo est déjà utilisé tu parcours TOUS tes membres (imagines le jour ou tu aura plusieurs milliers de joueurs ce sera superrrr long), et ton insertion de nouveau joueur se fait aussi dans ta boucle while de parcours des joueurs...(d'ou plusieurs insertions)
Ce qu'il faut, c'est verifier que le pseudo choisi n'apparait pas avec une requête:
$requete=mysql_query("select * from membres where pseudo=$_post["pseudo"] ");
et pour voir s'il n'y en a pas encore tu peux utiliser la fonction mysql_num_rows qui te renvoi le nombre de lignes résultats de ta requête
Ici, si mysql_num_rows($requete)==0, alors cela veut dire que personne n'a encore ce pseudo
inversement, si mysql_num_rows($requete)>0, il y a deja ce pseudo de pris
Je te conseille également d'utiliser la fonction addslashes sur tous les champs envoyés par l'utilisateur, car cela permet de te protéger contre ce qu'on appelle les injections sql (suppose que qqun mette un ' dans son pseudo volontairement ou pas, cela peut poser de gros probleme lorsque tu effectueras tes requetes sql )
je vois plusieurs choses qui me chiffonnent dans ton script:
déjà tu ouvres plusieurs fois la connexion à ta base de données (quand tu la rouvres une 2eme fois c'était inutile car elle était déjà ouverte)
Ensuite pour voir si le pseudo est déjà utilisé tu parcours TOUS tes membres (imagines le jour ou tu aura plusieurs milliers de joueurs ce sera superrrr long), et ton insertion de nouveau joueur se fait aussi dans ta boucle while de parcours des joueurs...(d'ou plusieurs insertions)
Ce qu'il faut, c'est verifier que le pseudo choisi n'apparait pas avec une requête:
$requete=mysql_query("select * from membres where pseudo=$_post["pseudo"] ");
et pour voir s'il n'y en a pas encore tu peux utiliser la fonction mysql_num_rows qui te renvoi le nombre de lignes résultats de ta requête
Ici, si mysql_num_rows($requete)==0, alors cela veut dire que personne n'a encore ce pseudo
inversement, si mysql_num_rows($requete)>0, il y a deja ce pseudo de pris
Je te conseille également d'utiliser la fonction addslashes sur tous les champs envoyés par l'utilisateur, car cela permet de te protéger contre ce qu'on appelle les injections sql (suppose que qqun mette un ' dans son pseudo volontairement ou pas, cela peut poser de gros probleme lorsque tu effectueras tes requetes sql )