Comparaison variables avec BDD en php
Mex0s
Messages postés
69
Statut
Membre
-
Mex0s Messages postés 69 Statut Membre -
Mex0s Messages postés 69 Statut Membre -
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
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Comparaison samsung a15 et a16 - Accueil - Téléphones
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
}
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é.
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
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
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) ...
$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