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

  • Votes
  • Date
  • Date décroissante
  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>';
    }
    ?>
    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.
      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.
        1. Tu as sans doute oublié de fermer une accolade (condition, boucle, ...).
          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.
            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'];
              
              ...
              ?>
              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());
                ?>