Inscription aide svp

aurelienpm974 Messages postés 163 Statut Membre -  
aurelienpm974 Messages postés 163 Statut Membre -
Bonjour, depuis 3 mois j'arrive pas a le faire fonctionner svp aide

<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Inscription</title>
</head>
<body>
<center>
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</center>
<?php
//On verifie que le formulaire a ete envoye
if(isset($_POST['username'], $_POST['sha_pass_hash'], $_POST['passverif'], $_POST['email']) and $_POST['username']!='')
{
//On enleve lechappement si get_magic_quotes_gpc est active
if(get_magic_quotes_gpc())
{
$_POST['username'] = stripslashes($_POST['username']);
$_POST['sha_pass_hash'] = stripslashes($_POST['sha_pass_hash']);
$_POST['passverif'] = stripslashes($_POST['passverif']);
$_POST['email'] = stripslashes($_POST['email']);
}
//On verifie si le mot de passe et celui de la verification sont identiques
if($_POST['sha_pass_hash']==$_POST['passverif'])
{
//On verifie si le mot de passe a 6 caracteres ou plus
if(strlen($_POST['sha_pass_hash'])>=6)
{
//On verifie si lemail est valide
if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
{
//On echape les variables pour pouvoir les mettre dans une requette SQL
$username = mysql_real_escape_string($_POST['username']);
$sha_pass_hash = mysql_real_escape_string($_POST['sha_pass_hash']);
$email = mysql_real_escape_string($_POST['email']);
//On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
$dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
$dn2 = mysql_num_rows(mysql_query('select id from users'));
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
if(mysql_query('insert into account(id, username, sha_pass_hash, email, signup_date) values ('.$id.', "'.$username.'", "'.$sha_pass_hash.'", "'.$email.'", "'.time().'")'))
{
//Si ca a fonctionne, on naffiche pas le formulaire
$form = false;
?>
<div class="foot">
Votre compte a bien étai créer ,merci d'attendre 5 seconde avant de fermer le page
<meta http-equiv="refresh" content="5; URL=rejoindre.php">
</div>
<?php
}
else
{
//Sinon on dit quil y a eu une erreur
$form = true;
$message = 'Une erreur est survenue lors de l\'inscription.';
}
}
else
{
//Sinon, on dit que le pseudo voulu est deja pris
$form = true;
$message = 'Un autre utilisateur utilise déjà le nom d\'utilisateur que vous désirez utiliser.';
}
}
else
{
//Sinon, on dit que lemail nest pas valide
$form = true;
$message = 'L\'email que vous avez entré n\'est pas valide.';
}
}
else
{
//Sinon, on dit que le mot de passe nest pas assez long
$form = true;
$message = 'Le mot de passe que vous avez entré contien moins de 6 caractères.';
}
}
else
{
//Sinon, on dit que les mots de passes ne sont pas identiques
$form = true;
$message = 'Les mots de passe que vous avez entré ne sont pas identiques.';
}
}
else
{
$form = true;
}
if($form)
{
//On affiche un message sil y a lieu
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
//On affiche le formulaire
?>
<div class="content">
<form action="sign_up.php" method="post">
Veuillez remplir ce formulaire pour vous inscrire:<br />
<div class="center">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
<label for="sha_pass_hash">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="sha_pass_hash" /><br />
<label for="passverif">Mot de passe<span class="small">(vérification)</span></label><input type="password" name="passverif" /><br />
<label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
<br />
<input type="submit" value="Envoyer" />
</div>
</form>
</div>
<?php
}
?>
<div class="foot"><a href="<?php echo $url_home; ?>">Retour à l'accueil</a> - <a href="<?php echo $sdw; ?>">Support du Web</a></div>
</body>
</html>

9 réponses

Résumé de la discussion

La discussion porte sur un script d'inscription en PHP utilisant sign_up.php et une base de données, confronté à des échecs après des mois d'essais et à des messages d'erreur lors de l'enregistrement. Des éléments de solution évoquent d'analyser une éventuelle erreur de syntaxe (parse error) sur sign_up.php, puis de vérifier les conditions de mot de passe, d'égalité des entrées, et la validité de l'email. D'autres pistes insistent sur la gestion des doublons de nom d'utilisateur, l'échappement des variables et l'enregistrement dans la base, ainsi que sur la cohérence entre sha_pass_hash et passverif.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. aurelienpm974 Messages postés 163 Statut Membre 7
     
    a oui jai oublier sa , quand je couvre la page sa me dit sa :

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sign_up.php on line 41

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sign_up.php on line 45

    Une erreur est survenue lors de l'inscription.
    0
  2. aurelienpm974 Messages postés 163 Statut Membre 7
     
    svp svp aide !!!
    0
  3. Laorra Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   108
     
    Bonjour,

    Déjà, sans lancer le fichier, tu as un problème avec ton preg_match() ligne 30.

    Déjà, tu utilise les même caractère spéciaux plusieurs fois, et tu ne les échappes pas.

    Essaye de corriger ton expression régulière pour le test de l'email.
    0
  4. aurelienpm974 Messages postés 163 Statut Membre 7
     
    tu utilise les même caractère spéciaux plusieurs fois, et tu ne les échappes pas.

    je comprent pas

    Essaye de corriger ton expression régulière pour le test de l'email.

    quoi ? sa

    <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
    <br />
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aurelienpm974 Messages postés 163 Statut Membre 7
     
    a sa pour émail

    {
    //On verifie si lemail est valide
    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
    {
    0
  7. aurelienpm974 Messages postés 163 Statut Membre 7
     
    je trouve pas le probléme !!!! AIDE SVP SVP SVP SVP !!!!!

    je suis pa dieu
    0
    1. aurelienpm974 Messages postés 163 Statut Membre 7
       
      xD jai trouver les bléme
      0
  8. Laorra Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   108
     
    Je ne vois pas le rapport avec Dieu mais essayons.

    Est ce que c'est toi qui à fait ce code :

    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))  
    ?

    L'expression régulière est le premier paramètre de ta fonction preg_match :

    #^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i


    test en remplaçant ta ligne par ça :

    if(preg_match('/^[^@]+@(([\w\-]+\.){1,4}[a-zA-Z]{2,4}|(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]))$/',$_POST['email'])){
    0
    1. aurelienpm974 Messages postés 163 Statut Membre 7
       
      merci !!!! comme on dit dans wow TY!!!
      0
    2. aurelienpm974 Messages postés 163 Statut Membre 7
       
      nn !!! marche pas me dit

      Parse error: parse error in C:\wamp\www\sign_up.php on line 73
      0
  9. aurelienpm974 Messages postés 163 Statut Membre 7
     
    <?php
    include('config.php');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
    <title>Inscription</title>
    </head>
    <body>
    <center>
    <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
    </center>
    <?php
    //On verifie que le formulaire a ete envoye
    if(isset($_POST['username'], $_POST['sha_pass_hash'], $_POST['passverif'], $_POST['email']) and $_POST['username']!='')
    {
    //On enleve lechappement si get_magic_quotes_gpc est active
    if(get_magic_quotes_gpc())
    {
    $_POST['username'] = stripslashes($_POST['username']);
    $_POST['sha_pass_hash'] = stripslashes($_POST['sha_pass_hash']);
    $_POST['passverif'] = stripslashes($_POST['passverif']);
    $_POST['email'] = stripslashes($_POST['email']);
    }
    //On verifie si le mot de passe et celui de la verification sont identiques
    if($_POST['sha_pass_hash']==$_POST['passverif'])
    {
    //On verifie si le mot de passe a 6 caracteres ou plus
    if(strlen($_POST['sha_pass_hash'])>=6)
    {
    //On verifie si lemail est valide
    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
    {
    //On echape les variables pour pouvoir les mettre dans une requette SQL
    $username = mysql_real_escape_string($_POST['username']);
    $sha_pass_hash = mysql_real_escape_string($_POST['sha_pass_hash']);
    $email = mysql_real_escape_string($_POST['email']);
    //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
    $dn = mysql_num_rows(mysql_query('select id from account where username="'.$username.'"'));
    if($dn==0)
    {
    //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
    $dn2 = mysql_num_rows(mysql_query('select id from account'));
    $id = $dn2+1;
    //On enregistre les informations dans la base de donnee
    if(mysql_query('insert into account(id, username, sha_pass_hash, email) values ('.$id.', "'.$username.'", "'.$sha_pass_hash.'", "'.$email.'", "'.time().'")'))
    {
    //Si ca a fonctionne, on naffiche pas le formulaire
    $form = false;
    ?>
    <div class="foot">
    Votre compte wow a bien étai créer ,merci d'attendre 5 seconde avant de fermer le page
    <meta http-equiv="refresh" content="5; URL=rejoindre.php">
    </div>
    <?php
    }
    else
    {
    //Sinon on dit quil y a eu une erreur
    $form = true;
    $message = 'Une erreur est survenue lors de l\'inscription.';
    }
    }
    else
    {
    //Sinon, on dit que le pseudo voulu est deja pris
    $form = true;
    $message = 'Un autre utilisateur utilise déjà le nom d\'utilisateur que vous désirez utiliser.';
    }
    }
    else
    {
    //Sinon, on dit que lemail nest pas valide
    $form = true;
    $message = 'L\'email que vous avez entré n\'est pas valide.';
    }
    }
    else
    {
    //Sinon, on dit que le mot de passe nest pas assez long
    $form = true;
    $message = 'Le mot de passe que vous avez entré contien moins de 6 caractères.';
    }
    }
    else
    {
    //Sinon, on dit que les mots de passes ne sont pas identiques
    $form = true;
    $message = 'Les mots de passe que vous avez entré ne sont pas identiques.';
    }
    }
    else
    {
    $form = true;
    }
    if($form)
    {
    //On affiche un message sil y a lieu
    if(isset($message))
    {
    echo '<div class="message">'.$message.'</div>';
    }
    //On affiche le formulaire
    ?>
    <div class="content">
    <form action="sign_up.php" method="post">
    Veuillez remplir ce formulaire pour vous inscrire:<br />
    <div class="center">
    <label for="username">Nom d'utilisateur</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
    <label for="sha_pass_hash">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="sha_pass_hash" /><br />
    <label for="passverif">Mot de passe<span class="small">(vérification)</span></label><input type="password" name="passverif" /><br />
    <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
    <br />
    <input type="submit" value="Envoyer" />
    </div>
    </form>
    </div>
    <?php
    }
    ?>
    <div class="foot"><a href="<?php echo $url_home; ?>">Retour à l'accueil</a> - <a href="<?php echo $sdw; ?>">Support du Web</a></div>
    </body>
    </html>
    0
    1. aurelienpm974 Messages postés 163 Statut Membre 7
       
      encor un probléme il ma fiche que sa

      Une erreur est survenue lors de l'inscription.

      aide svp
      0
    2. aurelienpm974 Messages postés 163 Statut Membre 7
       
      ton truc pour émail marche pas jai déja dit mais si ta pas vu je le redit xD

      Parse error: parse error in C:\wamp\www\sign_up.php on line 73
      0
    3. Laorra Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   108
       
      As-tu bien renseigné les champs de connexion à ta BDD?

      Le problème viens de ta requête SQL.

      Essaye de faire un echo de ta requête au lieu de la lancer, et execute là dans PHPMyAdmin.
      0
    4. aurelienpm974 Messages postés 163 Statut Membre 7
       
      mais cette page php FAIT chi....... ^^
      0
    5. Laorra Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   108
       
      mon code n'est pas la ligne 73, et as tu bien remplacer l'accolade qui est à la ligne d'après?

      Peu importe, si ton expression fonctionne, garde celle ci.

      Peux-tu me copier l'echo de ta requête?
      0
  10. Akronos Messages postés 163 Statut Membre 32
     
    Bon déjà si tu veux faire un faux site WoW pour récupérer les pseudo et mdp entrer comme on dit:
    T'es spotted.

    Ensuite, essai d'apprendre par toi même, l'expression régulière que tu utilises est celle récupéré ici si je me trompe pas:
    https://forums.commentcamarche.net/forum/affich-20513316-expression-regulieres-php#p20514253

    T'aurais au moins pu lire tout, tu verrais que celle que tu utilises n'est pas la meilleure.

    Ensuite pour ton problème de base:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sign_up.php on line 41

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sign_up.php on line 45


    Celà signifie que ton premier paramère de mysql_num_rows() ligne 41 et 45 de sign_up.php est un booléen au lieu d'une ressource mySQL.

    Ici tu as plus d'informations, je refuse de t'aider d'avantage, car pour l'utilité que tu vas faire de se code je ne peux me permettre de te dire quoi mettre et où.

    Ps: s'il te plait prends des cours de français.
    0
    1. Laorra Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   108
       
      Ah ah!! Je venais d'abandonner =)
      0
    2. Akronos Messages postés 163 Statut Membre 32
       
      Mouai il s'est fait hard brained, ce qui m'ennui c'est qu'à cause de ça l'image de beaucoup en prends un coup, je veux dire suffit de lire quelque post récents voir ce qu'il dit:
      "Question aux pros" => Il ne connait pas la programmation et parle assez vite de piratage
      Sa regex qui est prise d'un autre post: https://forums.commentcamarche.net/forum/affich-20513316-expression-regulieres-php#p20514253

      Enfin, le genre type de personne qui salisse la réputation des débutants...
      0
    3. aurelienpm974 Messages postés 163 Statut Membre 7
       
      jai trouver le bléme :sha_pass_hash parce que a _ et fa fait un caré
      0
    4. Laorra Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   108
       
      Ça me rappel mes débuts sur le site du zero :')
      0
    5. aurelienpm974 Messages postés 163 Statut Membre 7
       
      si sur toi le programe marche envoi le programe
      0