Validation inscription espace membre

novice100 Messages postés 12 Statut Membre -  
novice100 Messages postés 12 Statut 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. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Si++;

    $ et S ne sont pas les mêmes choses :)
    0
  2. novice100 Messages postés 12 Statut Membre
     
    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
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  4. novice100 Messages postés 12 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu as sans doute oublié de fermer une accolade (condition, boucle, ...).
    0
  7. novice100 Messages postés 12 Statut Membre
     
    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
  8. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  9. novice100 Messages postés 12 Statut Membre
     
    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