Comparaison variables avec BDD en php
Fermé
Mex0s
Messages postés
60
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
2 septembre 2014
-
12 janv. 2010 à 23:23
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014 - 13 janv. 2010 à 16:47
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014 - 13 janv. 2010 à 16:47
Bonjour,
j'ai créé un formulaire d'inscription sur un site en html/php qui envoie les données dans une table mysql, mais j'aimerai afficher une erreur lorsque le login choisi dans le formulaire est déja utilisé.
J'ai aussi besoin de comparer les valeurs $_POST['login'] et $_POST['password'] avec les login/mdp contenus dans la bdd au moment de la connexion apres s'être inscris.
J'espere être assez clair et que vous pourrez m'aider.
D'avance merci :).
Mex0s
j'ai créé un formulaire d'inscription sur un site en html/php qui envoie les données dans une table mysql, mais j'aimerai afficher une erreur lorsque le login choisi dans le formulaire est déja utilisé.
J'ai aussi besoin de comparer les valeurs $_POST['login'] et $_POST['password'] avec les login/mdp contenus dans la bdd au moment de la connexion apres s'être inscris.
J'espere être assez clair et que vous pourrez m'aider.
D'avance merci :).
Mex0s
A voir également:
- Comparaison variables avec BDD en php
- Comparaison million milliard - Accueil - Technologies
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Comparaison samsung a15 et a16 - Accueil - Téléphones
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
9 réponses
$nombre = mysql_query($sql);
if ($nombre != 0 )
utiliser COUNT est une bonne idée, mais tu recommences la même erreur que MeXos : tu oublies que le $nombre que tu obtiens est une ressource, pas un nombre. Donc la comparaison avec 0 est mal venue. Ça ne va pas marcher.
if ($nombre != 0 )
utiliser COUNT est une bonne idée, mais tu recommences la même erreur que MeXos : tu oublies que le $nombre que tu obtiens est une ressource, pas un nombre. Donc la comparaison avec 0 est mal venue. Ça ne va pas marcher.
$sql = "SELECT COUNT(*) as nombre FROM membres WHERE 'login' = $login"; $reponse = mysql_query($sql); $ligne = mysql_fetch_array($reponse); if ($ligne['nombre'] != 0 ) { echo "il y a déjà un compte avec ce login"; } else { //enregistrement du membre }
UgglyBoy
Messages postés
426
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
30 mai 2015
64
12 janv. 2010 à 23:49
12 janv. 2010 à 23:49
Il suffit de rechercher $_POST['login'] et l'autre dans ta bd, si ça retourne au moins 1 enregistrement, alors ce login est déjà utilisé.
Lord Farquaad
Messages postés
5
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
29 janvier 2010
13 janv. 2010 à 00:10
13 janv. 2010 à 00:10
Salut,
cette page peut peut-être t'intéresser
http://www.chezneg.fr/leblog/chezneg-leblog.php?id_art=126
cette page peut peut-être t'intéresser
http://www.chezneg.fr/leblog/chezneg-leblog.php?id_art=126
Mex0s
Messages postés
60
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
2 septembre 2014
13 janv. 2010 à 01:30
13 janv. 2010 à 01:30
Merci pour vos réponses.
Par contre je n'y connais absolument rien en jquery donc ton lien ne m'aide pas trop malheuresement :x.
Une fois inscrite, une personne doit pouvoir se connecter a partir de ce formulaire html:
<form method="post" action="secure2.php">
Login: <input type="text" name="login"><br />
Mot de Pass:<input type="password" name="pass"><br />
<center><input type="submit" value="Envoyer"></center>
J'ai suivi le conseil de UgglyBoy:
J'essaie de récupérer la liste des logins enregistrés dans la base de données et de les comparer au login entré.
Si ce login existe je pourrai comparer les mots de pass correspondant.
secure2.php:
$login=$_POST['login'];
$pass=$_POST['pass'];
$reponse= mysql_query("SELECT * FROM membres WHERE 'login'='$login'"); //Je cherche le login dans la BDD
$donnees= mysql_fetch_array($reponse);
if($donnees='') //Si le login n'est pas trouvé dans la BDD on redirige
{
header('Location: index.php?page=connexion&secure=1');
}
else //Si le login existe dans la BDD, on va pouvoir comparer les mots de pass...
{
//Vérifier le mot de pass
}
Encore une fois j'espere être assez clair et que vous pourrez m'aider.
D'avance merci :).
Par contre je n'y connais absolument rien en jquery donc ton lien ne m'aide pas trop malheuresement :x.
Une fois inscrite, une personne doit pouvoir se connecter a partir de ce formulaire html:
<form method="post" action="secure2.php">
Login: <input type="text" name="login"><br />
Mot de Pass:<input type="password" name="pass"><br />
<center><input type="submit" value="Envoyer"></center>
J'ai suivi le conseil de UgglyBoy:
J'essaie de récupérer la liste des logins enregistrés dans la base de données et de les comparer au login entré.
Si ce login existe je pourrai comparer les mots de pass correspondant.
secure2.php:
$login=$_POST['login'];
$pass=$_POST['pass'];
$reponse= mysql_query("SELECT * FROM membres WHERE 'login'='$login'"); //Je cherche le login dans la BDD
$donnees= mysql_fetch_array($reponse);
if($donnees='') //Si le login n'est pas trouvé dans la BDD on redirige
{
header('Location: index.php?page=connexion&secure=1');
}
else //Si le login existe dans la BDD, on va pouvoir comparer les mots de pass...
{
//Vérifier le mot de pass
}
Encore une fois j'espere être assez clair et que vous pourrez m'aider.
D'avance merci :).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lord Farquaad
Messages postés
5
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
29 janvier 2010
13 janv. 2010 à 10:12
13 janv. 2010 à 10:12
Salut,
Je ne sais pas si ce code fonctionne mais pour ta variable $reponse je mettrai plutôt
Sinon je ne vois pas l'utilité de ton else ! A partir du moment où tous les login sont différents il peut y avoir des mots de passe identiques !!
Sinon le reste semble bon ! Tu devrais aussi créer une session avec les class et tout..
Bref j'espère t'avoir aidé !
Je ne sais pas si ce code fonctionne mais pour ta variable $reponse je mettrai plutôt
$reponse= mysql_query("SELECT * FROM membres WHERE login='$login';");
Sinon je ne vois pas l'utilité de ton else ! A partir du moment où tous les login sont différents il peut y avoir des mots de passe identiques !!
Sinon le reste semble bon ! Tu devrais aussi créer une session avec les class et tout..
Bref j'espère t'avoir aidé !
Bonjour
if($donnees='') //Si le login n'est pas trouvé dans la BDD on redirige
Ce test est tout faux.
D'abord, ce n'est pas un test, il faudrait == et non pas =
ensuite, $donnees est une resource et pas une chaine, inutile de le comparer avec une autre chaine...
Il faut compter le nombre de réponses à l'aide de mysql_num_rows()
if(mysql_num_rows($donnees)>0) ...
if($donnees='') //Si le login n'est pas trouvé dans la BDD on redirige
Ce test est tout faux.
D'abord, ce n'est pas un test, il faudrait == et non pas =
ensuite, $donnees est une resource et pas une chaine, inutile de le comparer avec une autre chaine...
Il faut compter le nombre de réponses à l'aide de mysql_num_rows()
if(mysql_num_rows($donnees)>0) ...
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
13 janv. 2010 à 11:07
13 janv. 2010 à 11:07
$sql = "SELECT COUNT(*) FROM membres WHERE 'login' = $login"; $nombre = mysql_query($sql); if ($nombre != 0 ) { echo "il y a déjà un compte avec ce login"; } else { //enregistrement du membre }
En étant puriste, c'est mieux que d'extraire les lignes avec le même login
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
13 janv. 2010 à 12:30
13 janv. 2010 à 12:30
Méa Culpa, j'ai tendance a travailler directement avec mes requêtes depuis MySQL Query Browser donc... sans Php derière.. Merci bien pour ce rectif. =)
Mex0s
Messages postés
60
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
2 septembre 2014
13 janv. 2010 à 16:47
13 janv. 2010 à 16:47
Merci à tous pour toutes ces réponses ma foi fort interessentes.
Ca m'fait pas mal de trucs à réctifier, au boulot.
Merci encore, j'vous tiens au courant :p.
Ca m'fait pas mal de trucs à réctifier, au boulot.
Merci encore, j'vous tiens au courant :p.