Problème espace membre PHP
Résolu/Fermé
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
-
22 juin 2012 à 14:23
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 - 22 juin 2012 à 17:25
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 - 22 juin 2012 à 17:25
A voir également:
- Problème espace membre PHP
- Espace insécable word - Guide
- Comment liberer de l'espace sur gmail - Guide
- Membre indisponible vinted - Guide
- Easy php - Télécharger - Divers Web & Internet
- Espace stockage google - Guide
9 réponses
slackeruser
Messages postés
121
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
3 août 2018
16
22 juin 2012 à 14:39
22 juin 2012 à 14:39
Le mieux est de séparer ton mysql_query() et ton mysql_num_rows(). Tu peux avoir une erreur dans ta requête SQL, qui peut entrainer ce genre d'erreur. Et si le but de ton SELECT et d'avoir le nombre d'enregistrements, autant faire directement un SELECT COUNT()
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
22 juin 2012 à 14:48
22 juin 2012 à 14:48
Merci de ta réponse, mais pourrez tu m'indiquer comment procéder stp? car je ne voit pas du tout
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
22 juin 2012 à 14:53
22 juin 2012 à 14:53
Alors, ta connexion :
devrait plutôt être comme ceci :
deuxième point tes requêtes:
pour être complet (mais ce n'est pas obligatoire) tu devrais écrire :
Essaye déjà ceci, et si ça ne fonctionne pas on rajoutera quelque lignes pour avoir un message d'erreur plus intéressant...
P.S. : quand tu postes un code pour obtenir de l'aide il est bon d'identifier les lignes concernées par le message d'erreur, ça évite aux helpeurs de les rechercher.
//On se connecte a la base de donnee mysql_connect('localhost', 'root', ''); mysql_select_db('users');
devrait plutôt être comme ceci :
//On se connecte a la base de donnee $connect=mysql_connect('localhost', 'root', ''); mysql_select_db('users',$db);
deuxième point tes requêtes:
//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;
pour être complet (mais ce n'est pas obligatoire) tu devrais écrire :
//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.'"',$connect)); 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',$connect)); $id = $dn2+1;
Essaye déjà ceci, et si ça ne fonctionne pas on rajoutera quelque lignes pour avoir un message d'erreur plus intéressant...
P.S. : quand tu postes un code pour obtenir de l'aide il est bon d'identifier les lignes concernées par le message d'erreur, ça évite aux helpeurs de les rechercher.
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
Modifié par Zyo1 le 22/06/2012 à 15:30
Modifié par Zyo1 le 22/06/2012 à 15:30
Merci pour ta réponse,
Maintenant j'ai ces deux erreur avant que je click sur le lien contenant le formulaire:
Notice: Undefined variable: db in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\config.php on line 14
Warning: mysql_select_db() expects parameter 2 to be resource, null given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\config.php on line 14
et j'ai encore les erreurs du début,
Je te montre les 2 programmes:
config.php
//On se connecte a la base de donnee
$connect=mysql_connect('localhost', 'root', '');
ligne14-->mysql_select_db('users',$db);
//Email du webmaster
$mail_webmaster = 'example@example.com';
//Adresse du dossier de la top site
$url_root = 'http://www.example.com/';
et inscription.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
*ligne43--> $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"',$connect));
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
*ligne47--> $dn2 = mysql_num_rows(mysql_query('select id from users',$connect));
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
{
//Si ca a fonctionne, on naffiche pas le formulaire
$form = false;
?>
<div class="message">Vous avez bien été inscrit. Vous pouvez doré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é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="password">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="password" /><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 />
<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 à l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
Je ne comprend vraiment pas ce que ces erreurs veulent dire
Maintenant j'ai ces deux erreur avant que je click sur le lien contenant le formulaire:
Notice: Undefined variable: db in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\config.php on line 14
Warning: mysql_select_db() expects parameter 2 to be resource, null given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\config.php on line 14
et j'ai encore les erreurs du début,
Je te montre les 2 programmes:
config.php
//On se connecte a la base de donnee
$connect=mysql_connect('localhost', 'root', '');
ligne14-->mysql_select_db('users',$db);
//Email du webmaster
$mail_webmaster = 'example@example.com';
//Adresse du dossier de la top site
$url_root = 'http://www.example.com/';
et inscription.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
*ligne43--> $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"',$connect));
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
*ligne47--> $dn2 = mysql_num_rows(mysql_query('select id from users',$connect));
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
{
//Si ca a fonctionne, on naffiche pas le formulaire
$form = false;
?>
<div class="message">Vous avez bien été inscrit. Vous pouvez doré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é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="password">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="password" /><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 />
<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 à l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
Je ne comprend vraiment pas ce que ces erreurs veulent dire
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
22 juin 2012 à 15:32
22 juin 2012 à 15:32
Mea culpa !
config.php :
En effet, tu dois remettre le nom de la variable qui correspond à la connexion...
config.php :
//On se connecte a la base de donnee $connect=mysql_connect('localhost', 'root', ''); ligne14-->mysql_select_db('users',$connect);
En effet, tu dois remettre le nom de la variable qui correspond à la connexion...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
Modifié par Zyo1 le 22/06/2012 à 15:40
Modifié par Zyo1 le 22/06/2012 à 15:40
Oups bien vue ;-)
Mais j'ai toujours ces 2 erreurs :
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 43
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 47
inscription.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
*ligne43--> $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"',$connect));
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
*ligne47--> $dn2 = mysql_num_rows(mysql_query('select id from users',$connect));
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
{
//Si ca a fonctionne, on naffiche pas le formulaire
$form = false;
?>
<div class="message">Vous avez bien été inscrit. Vous pouvez doré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é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="password">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="password" /><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 />
<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 à l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
J'ai indiqué sur le code le numéro des lignes où le problème se pose
Mais j'ai toujours ces 2 erreurs :
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 43
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 47
inscription.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
*ligne43--> $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"',$connect));
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
*ligne47--> $dn2 = mysql_num_rows(mysql_query('select id from users',$connect));
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
{
//Si ca a fonctionne, on naffiche pas le formulaire
$form = false;
?>
<div class="message">Vous avez bien été inscrit. Vous pouvez doré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é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="password">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="password" /><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 />
<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 à l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
J'ai indiqué sur le code le numéro des lignes où le problème se pose
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
Modifié par Colbi97 le 22/06/2012 à 15:52
Modifié par Colbi97 le 22/06/2012 à 15:52
Ok, donc comme te disais slackeruser un peu plus haut, il faut séparer ton select de ton mysql_num_rows pour savoir d'où viens ton erreur :
Essaye ça et dis moi quels sont les messages d'erreur (pas besoin de redonner tout le code).
//On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis $result = mysql_query("select id from users where username='".$username."'",$connect); $dn = mysql_num_rows($result); { //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel $result2 = mysql_query("select id from users",$connect); $dn2=mysql_num_rows($result2); $id = $dn2+1;
Essaye ça et dis moi quels sont les messages d'erreur (pas besoin de redonner tout le code).
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
Modifié par Zyo1 le 22/06/2012 à 16:02
Modifié par Zyo1 le 22/06/2012 à 16:02
J'ai maintenant une erreur à la ligne 74 dès que je click sur le lien menant au formulaire:
Parse error: syntax error, unexpected T_ELSE in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 74 :
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.';
}
j'ai essayé d'enlever le else puisque je pensé que cela provenait du fait que l'on est supprimé le if mais cela me donne ensuite une erreur à la ligne 81
Parse error: syntax error, unexpected T_ELSE in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 81
Parse error: syntax error, unexpected T_ELSE in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 74 :
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.';
}
j'ai essayé d'enlever le else puisque je pensé que cela provenait du fait que l'on est supprimé le if mais cela me donne ensuite une erreur à la ligne 81
Parse error: syntax error, unexpected T_ELSE in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 81
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
22 juin 2012 à 16:50
22 juin 2012 à 16:50
Tu as supprimé le if ?
Seules les commandes SQL étaient à modifier, excuse moi de ne pas avoir repris le if, je me suis concentré sur le problème de requête sans faire attention à sa présence...
Seules les commandes SQL étaient à modifier, excuse moi de ne pas avoir repris le if, je me suis concentré sur le problème de requête sans faire attention à sa présence...
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
Modifié par Zyo1 le 22/06/2012 à 17:06
Modifié par Zyo1 le 22/06/2012 à 17:06
Ok voici la modification que j'ai apporté à la partie du code :
//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
$result = mysql_query("select id from users where username='".$username."'",$connect);
ligne44-->$dn = mysql_num_rows($result);
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
$result2 = mysql_query("select id from users",$connect);
ligne50-->$dn2=mysql_num_rows($result2);
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
Mais j'ai les erreurs suivantes :
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 44
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 50
C'est vraiment troublant...
//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
$result = mysql_query("select id from users where username='".$username."'",$connect);
ligne44-->$dn = mysql_num_rows($result);
if($dn==0)
{
//On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel
$result2 = mysql_query("select id from users",$connect);
ligne50-->$dn2=mysql_num_rows($result2);
$id = $dn2+1;
//On enregistre les informations dans la base de donnee
Mais j'ai les erreurs suivantes :
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 44
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\espace2\sign_up.php on line 50
C'est vraiment troublant...
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
22 juin 2012 à 17:11
22 juin 2012 à 17:11
Peux-tu essayer ceci :
Cela nous permettra d'écarter le risque d'erreur dans la requête.
$result = mysql_query("select id from users where username='".$username."'",$connect) or die(mysql_error()); ligne44-->$dn = mysql_num_rows($result); if($dn==0) { //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel $result2 = mysql_query("select id from users",$connect) or die(mysql_error()); ligne50-->$dn2=mysql_num_rows($result2); $id = $dn2+1;
Cela nous permettra d'écarter le risque d'erreur dans la requête.
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
Modifié par Zyo1 le 22/06/2012 à 17:19
Modifié par Zyo1 le 22/06/2012 à 17:19
Ah voilà cette erreur est enfin supprimer :-)
Mais j'ai maintenant la réponse suivante :
Aucune base n'a été sélectionnée
Pourtant par la commande :
//On se connecte a la base de donnee
$connect=mysql_connect('localhost', 'root', '');
mysql_select_db('users',$connect);
J'appelle bien ma base de données appellée users,
Comment cela ce fait t'il?
Mais j'ai maintenant la réponse suivante :
Aucune base n'a été sélectionnée
Pourtant par la commande :
//On se connecte a la base de donnee
$connect=mysql_connect('localhost', 'root', '');
mysql_select_db('users',$connect);
J'appelle bien ma base de données appellée users,
Comment cela ce fait t'il?
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
Modifié par Colbi97 le 22/06/2012 à 17:25
Modifié par Colbi97 le 22/06/2012 à 17:25
On va modifier là aussi :
//On se connecte a la base de donnee $connect=mysql_connect('localhost', 'root', '') or die('Impossible de se connecter : ' . mysql_error()); mysql_select_db('users',$connect) or die ('Impossible de sélectionner la base de données : ' . mysql_error());
Zyo1
Messages postés
83
Date d'inscription
vendredi 22 juin 2012
Statut
Membre
Dernière intervention
24 juillet 2015
22 juin 2012 à 17:21
22 juin 2012 à 17:21
Ah désolé c'est ok j'ai rectifié
Vraiment merci pour ton aide c'est vraiment sympa sa faisais depuis ce matin que je planché dessus
Merci ;-)
Vraiment merci pour ton aide c'est vraiment sympa sa faisais depuis ce matin que je planché dessus
Merci ;-)