Se connecter / S'enregistrer
Votre question

Une erreur sur mon code PHP ?

Tags :
  • Email
  • Programmation
Dernière réponse : dans Programmation
8 Août 2010 13:50:24

Bonjour,
Je suis en train de créer un site avec un espace membres, tout se passe bien : je récupère leur pseudo, email, etc...

Mais je voudrais créer une nouvelle option sur le formulaire d'inscription : la race (Orc, Humain). le problème sais que je n'arrive pas à récupérer sur ma base de donnée la "race" du membre : s

Voici mon code:

  1. <?php
  2.  
  3. if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
  4. // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
  5. if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['race']) && !empty($_POST['email']))) {
  6.  
  7. if ($_POST['pass'] != $_POST['pass_confirm']) {
  8. $erreur = 'Les 2 mots de passe sont différents.';
  9. }
  10. else {
  11. $base = mysql_connect ('localhost', 'root', '');
  12. mysql_select_db ('Age_medieval', $base);
  13.  
  14.  
  15. $sql = 'SELECT count(*) FROM comptes_utilisateurs WHERE Nom_utilisateur="'.mysql_escape_string($_POST['login']).'"';
  16. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  17. $data = mysql_fetch_array($req);
  18.  
  19. if ($data[0] == 0) {
  20. $sql = 'INSERT INTO comptes_utilisateurs VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'", "", "'.mysql_escape_string($_POST['race']).'", "", "", "", "", "", "", "")';
  21. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
  22.  
  23. session_start();
  24. $_SESSION['login'] = $_POST['login'];
  25. header('Location: membre.php');
  26. exit();
  27. }
  28. else {
  29. $erreur = 'Un membre possède déjà ce login.';
  30. }
  31. }
  32. }
  33. else {
  34. $erreur = 'Au moins un des champs est vide.';
  35. }
  36. }
  37. ?>
  38. <html>
  39. <head>
  40. <title>Inscription</title>
  41. </head>
  42.  
  43. <body>
  44. Inscription à l'espace membre :<br />
  45. <form action="inscription.php" method="post">
  46. Pseudo* : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
  47. Mot de passe* : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
  48. Confirmer votre mot de passe* : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
  49. Email* : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br />
  50. Votre race* : <p><input type="radio" name="race" value="<?php if (isset($_POST['race'])) echo htmlentities(trim($_POST['race'])); ?>" id="Orc" checked="checked" /> <label for="Orc">Orc</label>
  51. <input type="radio" name="race" value="<?php if (isset($_POST['race'])) echo htmlentities(trim($_POST['race'])); ?>" id="Humain" /> <label for="Humain">Humain</label></p>
  52. <input type="submit" name="inscription" value="Inscription">
  53. </form>
  54. <?php
  55. if (isset($erreur)) echo '<br />',$erreur;
  56. ?>
  57. </body>
  58. </html>

Autres pages sur : erreur code php

a c 232 L Programmation
a b 1 Email
8 Août 2010 13:58:22

Salut,

Ce n'est pas dans value qu'il faut mettre ça.
Mais tu veux cocher la radiobutton si la race est celle actuelle.
Ca serait plutôt quelque chose du genre:
  1. Votre race* : <p><input type="radio" name="race" <?php if (isset($_POST['race'])) echo 'checked="checked"' ?> id="Orc" checked="checked" /> <label for="Orc">Orc</label>
  2. <input type="radio" name="race" <?php if (isset($_POST['race'])) echo 'checked="checked"' ?> id="Humain" /> <label for="Humain">Humain</label></p>
m
0
l
8 Août 2010 14:12:07

A ok merci beaucoup ça marche mieux mais dans ma base de donnée il me mettent : "on" au lieu du nom de la race bizzard :s
m
0
l
Contenus similaires
8 Août 2010 14:31:41

J'ai résolu le problème, j'ai mit un value avant <?php .... et sa marche !
Merci !
m
0
l
9 Août 2010 01:16:10

Pourquoi tu as mis deux fois $_POST['inscription']) && $_POST['inscription']?
Une fois ca suffit
m
0
l
9 Août 2010 10:18:20

if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

Ce n'est pas le meme controle, mais vu que tu vérifie le contenu de la variable, vérifier sa présence en premier lieu n'est pas nécessaire dans ce cas, donc :

if ($_POST['inscription'] == 'Inscription') {

suffit.
m
0
l
a c 232 L Programmation
a b 1 Email
9 Août 2010 11:17:51

T'as pas une Notice dans le cas où $_POST['inscription'] n'est pas défini avec ta solution okinou ? Non pas que ce soit important hein :D 
(D'ailleurs t'as oublié $_ à $_POST ;) )
m
0
l
9 Août 2010 11:31:38

OmaR a dit :
T'as pas une Notice dans le cas où $_POST['inscription'] n'est pas défini avec ta solution okinou ? Non pas que ce soit important hein :D 
(D'ailleurs t'as oublié $_ à $_POST ;) )


Ha ouai ces foutues notice, solutions : > on les vire :p 

pour le $_ j'ai corrigé.
m
0
l
10 Août 2010 19:12:17

J'ai un autre problème du meme genre mais c'est pour afficher les ressources d'un joueurs (pour un jeu ^^)

  1. <?php
  2. include("mysqlcnn.php");
  3. if(isset($_SESSION['login']))
  4. {
  5. $pseudo = ($_SESSION['login']);
  6. $dn = mysql_query('select Race_utilisateur, Score_utilisateur, Score_milit_utilisateur from Comptes_utilisateurs where Nom_utilisateur="'.$pseudo.'"');
  7. if(mysql_num_rows($dn)>0)
  8. {
  9. $donnees = mysql_fetch_array($dn);
  10. //On affiche les donnees de lutilisateur
  11. ?>
  12. <html>
  13. <head>
  14. <body>
  15. <title>Age Medieval, jeu de stratégie !</title>
  16. <td height="265" width="173" valign="top" style="background-image: url(Mettre image ICI !!!);" align="center">
  17. <table width="147" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td height="46" valign="middle" align="center">
  18. [img]http://themes/2/images/texten0.jpg[/img] </td></tr>
  19. <tr><td>
  20. [b]<font color="#FF0000">Pseudo :</font> <?php echo htmlentities($_SESSION['login']); ?>[/b]
  21.  
  22. [b]<font color="#FF0000">Score :</font> <?php echo htmlentities($donnees['Score_utilisateur']); ?>[/b]
  23.  
  24. [b]<font color="#FF0000">Unites millitaires :</font> <?php echo htmlentities($donnees['Score_milit_utilisateur']); ?>[/b]
  25.  
  26. [b]<font color="#FF0000">Race :</font> <?php echo htmlentities($donnees['Race_utilisateur']); ?>[/b]
  27.  
  28. </body>
  29. </head>
  30. </html>
  31. <?php
  32. }}
  33. ?>


Voici le message d'erreur : Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\Age Medieval\ressources_joueurs.php on line 7

depuis ce matin je cherche une erreur mais je ne trouve rien ...
Si quelqu'un peut m'aider ce serais génial :D 

Ps: include("mysqlcnn.php"); est le fichier pour se connecter a la base de donnée et faire "session_start();"
m
0
l
a c 232 L Programmation
a b 1 Email
10 Août 2010 19:52:23

Salut,

Il ne faut pas utiliser " et " pour entourer une string, mais ' et ' en MySQL.
(je pense à ta condition)
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS