Validation inscription espace membre

Bonjour,

Je suis en train de réaliser un espace membre en php.
J'utilise Dreamweaver CS4.

Ma base de donnée est : espace_membre
Ma table est : membre

Voici ma page "inscription"
<h1>Inscription 1/2</h1>
<form method="post" action="registerok.php" enctype="multipart/form-data">
<fieldset><legend>Identifiants</legend>
<label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" /> (le pseudo doit contenir entre 3 et 15 caractères)<br />
<p><input type="submit" value="S'inscrire" /></p>
</form>

Voici ma page "verification" (ici pseudo):
<?php
$pseudo_erreur1 = NULL;
$pseudo_erreur2 = NULL;
?>
<?php
$i = 0;
$pseudo = mysql_real_escape_string($_POST['pseudo']);

$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM membre WHERE membre_pseudo = "'.$pseudo.'"'), 0);
if ($nombrepseudo != 0)
{
$pseudo_erreur1 = "votre pseudo est déjà utilisé par un membre";
Si++;
}
if (strlen($pseudo) < 3 || strlen($pseudo) > 15
{
$pseudo_erreur2 = "votre pseudo est soit trop grand, soit trop petit";
Si++;
}
?>
<?php
if ($i == 0)
{
echo'<h1>Inscription terminée</h1>';
}
?>

J'ai l'erreur suivante :
Parse error: parse error in C:\wamp\www\Site_Test\registerok.php on line 30

Quelqu'un peut-il m'aider à résoudre ce problème?
Merci d'avance.

8 réponses

  1. Si++;

    $ et S ne sont pas les mêmes choses :)
    0
    1. merci, je viens de changer comme ceci, mais cette fois il y a le message ci-dessous :
      Messager erreur :
      Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\Site_Test\registerok.php on line 26

      <?php
      $i = 0;
      $pseudo = mysql_real_escape_string($_POST['pseudo']);

      $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM membre WHERE membre_pseudo = "'.$pseudo.'"'), 0); (ligne 26)
      if ($nombrepseudo != 0)
      {
      $pseudo_erreur1 = "votre pseudo est déjà utilisé par un membre";
      $i++;
      }
      if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
      {
      $pseudo_erreur2 = "votre pseudo est soit trop grand, soit trop petit";
      $i++;
      }
      if ($i == 0)
      {
      echo'<h1>Inscription terminée</h1>';
      }
      ?>
      0
      1. Ta requête SQL doit être erronnée.
        Essaye en utilisant AS pour écrire COUNT(*) dans un champ.
        $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) AS nb FROM membre WHERE membre_pseudo = "'.$pseudo.'"'), 0);
        Comme apparemment tu n'es qu'au début de ton projet, je te conseil d'apprendre PDO.
        0
        1. j'ai maintenant l'erreur :
          Parse error: parse error in C:\wamp\www\Site_Test\registerok.php on line 47
          ligne 47, c'est </html>, qui ferme ma balise d'ouverture située avant head.
          0
          1. Tu as sans doute oublié de fermer une accolade (condition, boucle, ...).
            0
            1. non, car j'avais tout vérifier.
              Mais je pense que mon problème vient de la connexion avec la base de donnée.

              Voici les éléments :
              base de donnée : espace_membre
              table : membre
              pseudo : membre_pseudo

              et voici le code :
              $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) AS nb FROM espace_membre WHERE membre = "'.$pseudo.'"'), 0) or exit(mysql_error());

              Quelqu'un peut-il résoudre ce problème ? Merci d'avance.
              0
              1. Après le FROM, il faut mettre la table, pas la base de données.
                <?php
                $erreurs = '';
                $nbErreurs = 0;
                
                mysql_connect('localhost','root','');
                mysql_select_db('espace_membre');
                
                $pseudo = mysql_real_escape_string($_POST['pseudo']);
                $sql = 'SELECT COUNT(*) AS nb FROM membre WHERE pseudo = "'.$pseudo.'"';
                $req = mysql_query($sql);
                $data = mysql_fetch_assoc($req);
                $nb = $data['nb'];
                
                ...
                ?>
                0
                1. j'ai aussi utilisé cette solution, mais cela ne fonctionne pas :
                  Je suis perdu

                  <?php
                  $i = 0;
                  $pseudo = mysql_real_escape_string($_POST['pseudo']);

                  $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) AS nb FROM membre WHERE membre_pseudo = "'.$pseudo.'"'), 0) or exit(mysql_error());
                  ?>
                  0