JeuWeb - Crée ton jeu par navigateur
Code ne faisant...Rien... - 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 : Code ne faisant...Rien... (/showthread.php?tid=1130)



Code ne faisant...Rien... - oualala - 29-04-2007

Bon voilà, d'abord bonjour à vous.
Ensuite j'ai un problème avec un formulaire pour les admins(anti triche)et sa affiche tout, c'est super!!!Mais en se qui conserne le traitement Confusediffle: sa ne change rien par après au membre...
Voilà mon code d'affichage:

Code PHP :
<?php 
echo '<center><font size="4" color="red">Infos du membre '.$_POST['pseudo'].':</font></center><br /><br />
<fieldset>
<form method="post" action="modif_membre_affiche_traitement.php?pseudo='
.$_POST['pseudo'].'">
<legend><b>Infos du membres '
.$_POST['pseudo'].' </b></legend>
<label>E-mail <br />
<textarea name="email" rows="1" cols="30" tabindex="20">'
.$membre['email'].'</textarea>
</label><br />
<label>Race <br />
<textarea name="race" rows="1" cols="30" tabindex="20">'
.$membre['race'].'</textarea>
</label><br />
<label>Autorisation <br />
<textarea name="autorisation" rows="1" cols="30" tabindex="20">'
.$membre['autorisation'].'</textarea>
</label><br />
<label>Gald <br />
<textarea name="gald" rows="1" cols="30" tabindex="20">'
.$membre['gald'].'</textarea>
</label><br />
<label>Mana <br />
<textarea name="mana" rows="1" cols="30" tabindex="20">'
.$membre['mana'].'</textarea>
</label><br />
<label>Xp <br />
<textarea name="xp" rows="1" cols="30" tabindex="20">'
.$membre['xp'].'</textarea>
</label><br />
<label>Rp <br />
<textarea name="rp" rows="1" cols="30" tabindex="20">'
.$membre['rp'].'</textarea>
</label><br />
<label>Race <br />
<textarea name="race" rows="1" cols="30" tabindex="20">'
.$membre['race'].'</textarea>
</label><br />
<label>Troupes: Archers légés <br />
<textarea name="archer_lege" rows="1" cols="30" tabindex="20">'
.$troupe['archer_lege'].'</textarea>
</label><br />
<label>Archers lourds <br />
<textarea name="archer_lourd" rows="1" cols="30" tabindex="20">'
.$troupe['archer_lourd'].'</textarea>
</label><br />
<label>Archers d\'élites <br />
<textarea name="archer_elite" rows="1" cols="30" tabindex="20">'
.$troupe['archer_elite'].'</textarea>
</label><br />
<label>lanciers légés<br />
<textarea name="lancier_lege" rows="1" cols="30" tabindex="20">'
.$troupe['lancier_lege'].'</textarea>
</label><br />
<label>lanciers lourds<br />
<textarea name="lancier_lourd" rows="1" cols="30" tabindex="20">'
.$troupe['lancier_lourd'].'</textarea>
</label><br />
<label>lanciers élites<br />
<textarea name="lancier_elite" rows="1" cols="30" tabindex="20">'
.$troupe['lancier_elite'].'</textarea>
</label><br />
<label>cavaliers légés<br />
<textarea name="cavalier_lege" rows="1" cols="30" tabindex="20">'
.$troupe['cavalier_lege'].'</textarea>
</label><br />
<label>cavaliers lourds<br />
<textarea name="cavalier_lourd" rows="1" cols="30" tabindex="20">'
.$troupe['cavalier_lourd'].'</textarea>
</label><br />
<label>cavaliers d\'élites<br />
<textarea name="cavalier_elite" rows="1" cols="30" tabindex="20">'
.$troupe['cavalier_elite'].'</textarea>
</label><br />
<label>Fortifications: Enceintes<br />
<textarea name="enceintes" rows="1" cols="30" tabindex="20">'
.$fortifs['enceintes'].'</textarea>
</label><br />
<label>Meurtrières<br />
<textarea name="meurtrieres" rows="1" cols="30" tabindex="20">'
.$fortifs['meurtrieres'].'</textarea>
</label><br />
<label>Pont<br />
<textarea name="pont" rows="1" cols="30" tabindex="20">'
.$fortifs['pont'].'</textarea>
</label><br />
<label>Archers<br />
<textarea name="archers" rows="1" cols="30" tabindex="20">'
.$fortifs['archers'].'</textarea>
</label><br />
<label>Lanciers<br />
<textarea name="lanciers" rows="1" cols="30" tabindex="20">'
.$fortifs['lanciers'].'</textarea>
</label><br />
<label>Armurerie: archers<br />
<textarea name="arme_archers" rows="1" cols="30" tabindex="20">'
.$armure['arme_archers'].'</textarea>
</label><br />
<label>Lanciers<br />
<textarea name="arme_lanciers" rows="1" cols="30" tabindex="20">'
.$armure['arme_lanciers'].'</textarea>
</label><br />
<input type="submit" value="Envoyer" tabindex="30" />
</label>
</form>
</fieldset>
<br/>'
;

Et voici mon code de traitement:

Code PHP :
<?php 
$info_joueur
= mysql_query("SELECT autorisation FROM membres WHERE pseudo= '".$pseudo."'");
$reponse_joueur = mysql_fetch_array($info_joueur);
if(
$reponse_joueur['autorisation'] ==4)
{
//on modifie les troupes
$nom = $_GET['pseudo'];
mysql_query("UPDATE membres SET email='".$_POST['email']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET race='".$_POST['race']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET autorisation='".$_POST['autorisation']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET gald='".$_POST['gald']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET mana='".$_POST['mana']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET xp='".$_POST['xp']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET rp='".$_POST['rp']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET archer_lege='".$_POST['archer_lege']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET archer_lourd='".$_POST['archer_lourd']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET archer_elite='".$_POST['archer_elite']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET lancier_lege='".$_POST['lancier_lege']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET lancier_lourd='".$_POST['lancier_lourd']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET lancier_elite='".$_POST['lancier_elite']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET cavalier_lege='".$_POST['cavalier_lege']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET cavalier_lourd='".$_POST['cavalier_lourd']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET cavalier_elite='".$_POST['cavalier_elite']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET enceintes='".$_POST['enceintes']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET meurtrieres='".$_POST['meurtrieres']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET pont='".$_POST['pont']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET archers='".$_POST['archers']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET lanciers='".$_POST['lanciers']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET arme_archers='".$_POST['arme_archers']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET arme_lanciers='".$_POST['arme_lanciers']."' WHERE pseudo='$nom'");
}

Merci de me dire se qui ne va pas Wink


RE: Code ne faisant...Rien... - Plume - 29-04-2007

Holà malheureux !!! Qu'est-ce que tu me fais !
Tu veux me regrouper tes UPDATE, oui ?!


RE: Code ne faisant...Rien... - Kassak - 29-04-2007

Ca me fait flipper ton 2eme code:heuuu:


RE: Code ne faisant...Rien... - Raoull - 29-04-2007

Bin ya simplement aucune sécurité ni aucune vérification dans ton script, donc il peut se passer n'importe quoi...

Par exemple, si ta requete du début "$info_joueur" ne donne rien ... il ne se passera jamais rien, mais tu ne vérifie pas si elle retourne qlque chose.
Un simple mysql_num_rows($info_joueur) doit te retourner 1 sinon ya une erreur.

Ensuite, dans ta liste de requete, tu utilise diret les variables _POST sans aucune verif. Même si c'est pour la partie admin, ya un mnimum à faire .

Et puis surtout tu peux grouepr tes requetes dans une meme table.
Au lieu de faire :

Code PHP :
<?php 
mysql_query
("UPDATE membres SET email='".$_POST['email']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET race='".$_POST['race']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET autorisation='".$_POST['autorisation']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET  WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET mana='".$_POST['mana']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET xp='".$_POST['xp']."' WHERE pseudo='$nom'");
mysql_query("UPDATE membres SET rp='".$_POST['rp']."' WHERE pseudo='$nom'");

Tu peux mettre un "," (virgule) et update plusieurs valeurs d'un coup. (SET autorisation='".$_POST['autorisation']."', gald='".$_POST['gald']."') etc.

Sinon je pense qu'il y a pas d'erreur de syntaxe flagrante.
Il faut vérifier le résultat de tes reuqtetes, surtout la 1ere, pour voir d'ou vient le probleme.


RE: Code ne faisant...Rien... - oualala - 29-04-2007

Merci Wink et je mets tout pas ensemble pour mieux m'en sortir.Et on ne met pas de sécurité tout simplement parce-que on ne mettra pas d'autres admins.Mais je ferai la sécuritée à la fin, et merci je vais tester Wink


RE: Code ne faisant...Rien... - Raoull - 29-04-2007

non mais quand je dis "sécurité" c'est verif les _POST ok mais aussi verif si une requete aboutie et retourne un résultat valide. C'est surtout ca que tu dois pister dans ton cas.


RE: Code ne faisant...Rien... - oualala - 29-04-2007

Merci, moi je pensais pour que sa n'enregistre pas du html dans la table Wink sinon voilà le nouveau code:

Code PHP :
<?php 
$nom
= $_GET['pseudo'];
mysql_query("UPDATE membres SET email='".$_POST['email']."', race='".$_POST['race']."', autorisation='".$_POST['autorisation']."', gald='".$_POST['gald']."', mana='".$_POST['mana']."', xp='".$_POST['xp']."', rp='".$_POST['rp']."' WHERE pseudo='$nom'");
mysql_query("UPDATE troupes SET archer_lege='".$_POST['archer_lege']."', archer_lourd='".$_POST['archer_lourd']."', archer_elite='".$_POST['archer_elite']."', lancier_lege='".$_POST['lancier_lege']."', lancier_lourd='".$_POST['lancier_lourd']."',lancier_elite='".$_POST['lancier_elite']."', cavalier_lege='".$_POST['cavalier_lege']."', cavalier_lourd='".$_POST['cavalier_lourd']."', cavalier_elite='".$_POST['cavalier_elite']."' WHERE pseudo='$nom'");
mysql_query("UPDATE fortifications SET enceintes='".$_POST['enceintes']."', meurtrieres='".$_POST['meurtrieres']."', pont='".$_POST['pont']."', archers='".$_POST['archers']."', lanciers='".$_POST['lanciers']."' WHERE pseudo='$nom'");
mysql_query("UPDATE armurerie SET arme_archers='".$_POST['arme_archers']."', arme_lanciers='".$_POST['arme_lanciers']."', arme_cavaliers='".$_POST['arme_cavaliers']."' WHERE pseudo='$nom'");

Mais je vais vérifier si les $_POST renvoient quelque chose Wink car sa marche pas...
Pourtant j'ai vérifier race c'est bon, je change la race et sa me met la même que avant...


RE: Code ne faisant...Rien... - Plume - 29-04-2007

Si tu veux garder un peu de clarté dans tes requètes, niveau lisibilité, tu peux passer à la ligne, ça sera toujours très lisible Wink


RE: Code ne faisant...Rien... - Nessper - 29-04-2007

Verifie tes _POST, c'est vraiment primordial. Il faut qu'il y ait dans tes _POST ce que tu veux qu'il y ait. Exemple avec ton adresse mail: la on peut mettre n'importe quoi...


RE: Code ne faisant...Rien... - omsi668 - 29-04-2007

or die(mysql_error()); :/