Vous êtes ici: Support du web > Forum > Sites Web > PHP/MYSQL > Probleme avec le script espace membre

Probleme avec le script espace membre


Pour pouvoir créer ou répondre à des sujets, vous devez être connecté.
Résolu Ce sujet est résolu.
Pages: 1
Auteur Message
thepierro
La date07/10/2011 à 18:43:27

Mon avatar
Mon groupe
Bonjour,
Merci pour le script espace membre mais j'ai un petit problème; Le problème viens de la page sign_up.php a la ligne 43 (//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
) et ligne 47 (On enregistre les informations dans la base de donnee) la ligne 43 est:
$dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));

La ligne 47 est:
$dn2 = mysql_num_rows(mysql_query('select id from users'));

Le message d'erreur s'affiche quand je click envoyer lors de l'inscription Les messages sont:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/httpd/t/h/e/thepierro/mysite.com/espace_membre/sign_up.php on line 43

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/httpd/t/h/e/thepierro/mysite.com/espace_membre/sign_up.php on line 47

Merci d'avance

Cordialement
thepierro


Zack
La date07/10/2011 à 20:19:21

Mon avatar
Mon groupe
essaye de mettre des @ avant les mysql..

thepierro
La date08/10/2011 à 01:16:06

Mon avatar
Mon groupe
Bonsoir,
Merci a toi Zack de m'avoir répondu.
J'ai mis les @ devant les mysql Mais cela ne fonction pas ça marque toujours la même faute :(

Cordialement
thepierro

Aglzime
La date12/10/2011 à 18:25:57
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Mon avatar
Mon groupe
Bonjour,
Alors essaye ce code pour la page sign_up.php:
Code: PHP
<?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>
        <div class="header">
                <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
            </div>
<?php
//On verifie que le formulaire a ete envoye
if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']) and $_POST['username']!='')
{
        //On enleve lechappement si get_magic_quotes_gpc est active
        if(get_magic_quotes_gpc())
        {
                $_POST['username'] = stripslashes($_POST['username']);
                $_POST['password'] = stripslashes($_POST['password']);
                $_POST['passverif'] = stripslashes($_POST['passverif']);
                $_POST['email'] = stripslashes($_POST['email']);
                $_POST['avatar'] = stripslashes($_POST['avatar']);
        }
        //On verifie si le mot de passe et celui de la verification sont identiques
        if($_POST['password']==$_POST['passverif'])
        {
                //On verifie si le mot de passe a 6 caracteres ou plus
                if(strlen($_POST['password'])>=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']);
                                $password = mysql_real_escape_string($_POST['password']);
                                $email = mysql_real_escape_string($_POST['email']);
                                $avatar = mysql_real_escape_string($_POST['avatar']);
                                //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 enregistre les informations dans la base de donnee
                                        if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
                                        {
                                                //Si ca a fonctionne, on naffiche pas le formulaire
                                                $form = false;
?>
<div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
<a href="connexion.php">Se connecter</a></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&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
                                }
                        }
                        else
                        {
                                //Sinon, on dit que lemail nest pas valide
                                $form = true;
                                $message = 'L\'email que vous avez entr&eacute; 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&eacute; contien moins de 6 caract&egrave;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&eacute; 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="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" /><br />
            <label for="passverif">Mot de passe<span class="small">(v&eacute;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 />
            <label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <input type="submit" value="Envoyer" />
                </div>
    </form>
</div>
<?php
}
?>
                <div class="foot"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
        </body>
</html>

Cordialement


Une erreur s'est produite <strong>Veuillez signaler le bug dans le forum de bugs</strong><br /><strong>Si vous ne pouvez pas, </strong> contactez nous par le formulaire de contact.
thepierro
La date15/10/2011 à 15:06:38

Mon avatar
Mon groupe
Bonjour,
Merci a toi Aglzime pour le code de la page sign_up.php mais il y a toujours l'erreur de la ligne 43(On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel) le message d'erreur qui s'affiche est:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/httpd/t/h/e/thepierro/mysite.franceserv.com/espace_membre/sign_up.php on line 43.

Cordialement Thepierro



Aglzime
La date15/10/2011 à 16:15:54
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Mon avatar
Mon groupe
essaye alors ça:
Code: PHP
<?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>
        <div class="header">
                <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
            </div>
<?php
//On verifie que le formulaire a ete envoye
if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']) and $_POST['username']!='')
{
        //On enleve lechappement si get_magic_quotes_gpc est active
        if(get_magic_quotes_gpc())
        {
                $_POST['username'] = stripslashes($_POST['username']);
                $_POST['password'] = stripslashes($_POST['password']);
                $_POST['passverif'] = stripslashes($_POST['passverif']);
                $_POST['email'] = stripslashes($_POST['email']);
                $_POST['avatar'] = stripslashes($_POST['avatar']);
        }
        //On verifie si le mot de passe et celui de la verification sont identiques
        if($_POST['password']==$_POST['passverif'])
        {
                //On verifie si le mot de passe a 6 caracteres ou plus
                if(strlen($_POST['password'])>=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']);
                                $password = mysql_real_escape_string($_POST['password']);
                                $email = mysql_real_escape_string($_POST['email']);
                                $avatar = mysql_real_escape_string($_POST['avatar']);
                                //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
                                                                $slct = mysql_query("SELECT COUNT(*) AS nb_username FROM users WHERE username='".$username."'" );
                                                                $rec = mysql_fetch_array($slct);
                                                                if ($rec['nb_username'] == 0)
                                {
                                        //On enregistre les informations dans la base de donnee
                                        if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
                                        {
                                                //Si ca a fonctionne, on naffiche pas le formulaire
                                                $form = false;
?>
<div class="message">Vous avez bien &eacute;t&eacute; inscrit. Vous pouvez dor&eacute;navant vous connecter.<br />
<a href="connexion.php">Se connecter</a></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&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
                                }
                        }
                        else
                        {
                                //Sinon, on dit que lemail nest pas valide
                                $form = true;
                                $message = 'L\'email que vous avez entr&eacute; 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&eacute; contien moins de 6 caract&egrave;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&eacute; 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="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" /><br />
            <label for="passverif">Mot de passe<span class="small">(v&eacute;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 />
            <label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <input type="submit" value="Envoyer" />
                </div>
    </form>
</div>
<?php
}
?>
                <div class="foot"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
        </body>
</html>
 


Une erreur s'est produite <strong>Veuillez signaler le bug dans le forum de bugs</strong><br /><strong>Si vous ne pouvez pas, </strong> contactez nous par le formulaire de contact.
thepierro
La date15/10/2011 à 23:15:21

Mon avatar
Mon groupe
Bonsoir,
Il y a toujours l?erreur de la ligne 43 Le message est le même que tout alors. :(
Cordialement

Aglzime
La date16/10/2011 à 13:02:23
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux !
Mon avatar
Mon groupe
le problème vient d'autre part à mon avis ! perso je n'arrive pas à capter l'erreur

Une erreur s'est produite <strong>Veuillez signaler le bug dans le forum de bugs</strong><br /><strong>Si vous ne pouvez pas, </strong> contactez nous par le formulaire de contact.
thepierro
La date19/10/2011 à 17:34:04

Mon avatar
Mon groupe
Bonsoir,
Merci quand même a Aglzime

ybouane
La date22/10/2011 à 03:42:01

Mon avatar
Mon groupe
Bonjour thepierro,
le problème viens de la requete MySQL:
Code: SQL
mysql_query('select id from users where username="'.$username.'"');

Donc premièrement, est tu sur que tu t'est bien connecté à la base de donnée dans le fichier config.php?
As tu créer toutes les tables dont le script a besoin pour fonctionner?

Cordialement :)

thepierro
La date22/10/2011 à 21:57:19

Mon avatar
Mon groupe
Bonsoir ybouane,
Merci le problème venez de moi quand j'ai créer la table j'ai fait une faute au nom de la table j'ai oublier le "s" à la fin de users.
Excuser moi
Cordialement

djka23
La date11/01/2012 à 19:29:07

Mon avatar
Mon groupe
bon j'ai trouver mon probleme pour la connection mais j'en aie une autre

c'est quand j'ecris une nouvelle incription ca me donne une erreur apres avopir enregistrer...et j'en fait un nouveau et ca fait la meme chose

ca marque

Une erreur est survenue lors de l'inscription.

Pages:1


Il y a actuellent 17 personne(s) connecté(es)
Page générée en 0.00918 secondes
Retour en haut
Règlements - Nous contacter - Aider le site - RSS News
Copyright © Support du web - Toute copie partielle ou complète de nos créations est interdite sans l'accord de ses auteurs.
Toutes les marques citées appartiennent à leurs compagnies respectives.