JeuWeb - Crée ton jeu par navigateur
Problème avec mon script d'inscription - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Problème avec mon script d'inscription (/showthread.php?tid=3675)

Pages : 1 2


Problème avec mon script d'inscription - Kwest - 15-02-2009

Salut, j'ai fait un formulaire d'inscription pour mon jeu mais il bug :
il répète plusieurs fois l'action (il dit plusieurs fois vous vous êtes bien inscrits et il enregistre plusieurs fois les informations dans la bdd).
Ou il affiche ?=.

Voila le script de la zone de saisie :
Code PHP :
<?php 
<form method="post" action="inscription2.php">
<
div style="text-align: center;">Votre Pseudo* : <input name="pseudo"><br>
Votre mot de passe* : <input name="mot_de_passe" type="password"><br>
Votre e-mail* : <input name="mail">
<
br>
Votre camp * : <select name="race">
<
option value="humain">Humain</option>
<
option value="adjii">Adjii</option>
</
select>

<
br>
<
br>
<
small style="font-style: italic;">En cliquant sur le
bouton envoyer vous acceptez
<a href="rules.html">les
conditions d
'utilisation</a>.</small><br>
<small><span style="font-style: italic;">*champs
obligatoires</span></small><br>
</div>
<div style="text-align: center;"><input value="envoyer" type="submit"></div>
</form>


Et le script de vérification :

Code PHP :
<?php
if (isset($_POST['pseudo']) && ($_POST['mot_de_passe']) && ($_POST['mail']))
{
$pseudo = htmlspecialchars ($_POST['pseudo']);
$mot_de_passe = htmlspecialchars ($_POST['mot_de_passe']);
$mail = htmlspecialchars ($_POST['mail']);
$race = $_POST['race'];

mysql_connect("localhost", "root","");
mysql_select_db("test");

$reponse = mysql_query("SELECT * FROM membres ");

while (
$donnees = mysql_fetch_array($reponse) )
{
if (
$pseudo == $donnees['pseudo'])
{
echo
'Le pseudo ' .$pseudo. ' est déja prit, veuillez en choisir un autre.';
}

else
{

mysql_connect("localhost", "root", "");
mysql_select_db("test");

mysql_query("INSERT INTO membres VALUES('', '$pseudo', '$mot_de_passe', '$mail', 'membre', '$race')");
mysql_query("INSERT INTO joueurs VALUES ('$pseudo', '$race', '0', '1', '1', '10', '5', '10', '', '1', '', '20', '20')");
mysql_query("INSERT INTO ennemis VALUE ('$pseudo', '', '', '', '', '', '', '')");

echo
'félicitation ' .$pseudo. ', vous êtes inscrit. Vous pouvez dès maintenant vous connecter à votre espace membre.';
mysql_close();
}
}
}

else
{
echo
'Vous n\'avez pas remplis tout les champs. Veuillez faire retour arrière pour recommencer.';
}

?>

Merci d'avoir tout lu.


RE: Problème avec mon script d'inscription - Ruz - 15-02-2009

bonjour

alors, vais faire simple et rapide... je chercherai pas loin..tu fermes ta connection en pleine lecture de résultats... tu testes pas non plus le bon déroulement de tes requetes.
Enfin, y a plus simple pour tester l'existence d'un pseudo... et ton erreur vient de la conception illogique de ce script (il se répète autant de fois que tu as d'utilisateurs)

en gros, pour faire plus clair:

1) ouverture connection bdd
2) requetes + traitement (nouvelles requetes)
3) fermeture connection

4) revoir entièrement ta logique de pseudo libre ou non (select ID from membres where pseudo = '...lepseudo...' limit 1) par exemple
commence déjà par là.

Sinon, la syntaxe html est incomplète... balises non fermées... etc... (rien de bien grave, mais bon, je signale)
Pitet aller refaire un tour sur le sdz à l'occasion...

Bon courage... t'as encore du chemin à faire...


RE: Problème avec mon script d'inscription - Kwest - 15-02-2009

Euuuuh, j'ai essayé mais j'arrive pas à faire un autre script de vérification du pseudo...


RE: Problème avec mon script d'inscription - Clover18 - 15-02-2009

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 Wink

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 Wink )


RE: Problème avec mon script d'inscription - gameprog2 - 15-02-2009

Citation :Euuuuh, j'ai essayé mais j'arrive pas à faire un autre script de vérification du pseudo..
Direction google Wink c'est ton ami ^^
Et fais un tour sur le site du zéro avant^^ y a ce quil faut pour se connecter correctement à la BD.


RE: Problème avec mon script d'inscription - Kwest - 15-02-2009

Merci clover18, maintenant mon script marche super bien:good:.
Et merci aussi à gameprog mais google c'est plus mon copain>< ^^.


RE: Problème avec mon script d'inscription - Clover18 - 16-02-2009

de rien Wink


RE: Problème avec mon script d'inscription - gameprog2 - 16-02-2009

yaaa mais c'est qu'lle a mis sa photo clover^^
Woaaa elle est belle dis donc^^


Ha désolé pour google et toi alors Kwest :/
Peut-etre que tu lui parle mal ?
faut voir aussi parce qu'il est difficile sur les mots Wink


RE: Problème avec mon script d'inscription - Clover18 - 16-02-2009

remarque1: ptet bien que oui c'est moi mais ptet ben que non Big Grin
remarque2: bravo pour le hors sujet :lol:
remarque3: suite à la remarque1 je confirme que c'est moi ^^

remarque4: pour rester dans le ton, moi aussi je suis fachée avec google suite à mon test Ad Sense Big Grin


RE: Problème avec mon script d'inscription - gameprog2 - 16-02-2009

Citation :remarque1: ptet bien que oui c'est moi mais ptet ben que non 1
remarque2: bravo pour le hors sujet 8
remarque3: suite à la remarque1 je confirme que c'est moi 34
remarque4: pour rester dans le ton, moi aussi je suis fachée avec google suite à mon test Ad Sense

Je vois pas d'instructions dans ton programme... héhé...

Ha ouais il paraît que "Ad Sens" nous oublie parfois, mais on peut porter plainte non ?