Probleme php/sql et BDD

Fermé
Nirv - 7 mars 2009 à 11:21
 Nirv - 7 mars 2009 à 13:10
Bonjour,

En faite j'ai un petit problème avec la base de données et quelques requêtes en sql. Pour m'entrainer, j'ai créer une page "d'inscription", on s'inscrit, le pseudo et le pass est enregistré dans la BDD. Jusque là tout va bien.
Ensuite j'ai une page de connexion, avec le pseudo et le pass. Et là je sais pas trop comment m'y prendre.
J'ai d'abord fait des conditions toutes simples pour vérifié si les champs pseudo/pass étaient pas vide (auquel cas un message nous prévient).
Ensuite je veux sélectionner le pseudo rentré pour comparé si il est dans la BDD, et si il y est, vérifier si le mot de pass avec lequel il est lié, correspond bien au pass rentré aussi.

C'est un peu flou donc je vais mettre mon code ^^' :

$pseudo = mysql_query("SELECT pseudo FROM membres") or die(mysql_error());
$pass = mysql_query("SELECT pass FROM membres") or die(mysql_error());

$pseudo = mysql_fetch_array($pseudo);
$pass = mysql_fetch_array($pass);

if ($_POST['pseudo'] == $pseudo['pseudo'] && $_POST['pass'] == $pass['pass'])
{
Là on connecte a la page login.php
}
else => Sinon pseudo/pass incorrect.


Pour les tests, j'ai créé 2comptes : blabla/blabla et bloublou/bloublou (respectivement pseudo/pass)
Lorsque je rentre des ID erronés : j'ai bien le message d'erreur
Mais.. Quand je rentre blabla/blabla... (ou l'autre) Message d'erreur aussi !
Et en faite SEUL les identifiants blabla/bloublou fonctionnent.. Dans la BDD, tout est bien "rangé" donc je vois pas ou est le probleme. Je crois qu'il provient du SELECT car je savais pas trop comment m'y prendre

Donc voila ma question pour finir :
Comment puis-je récupérer les pseudos/pass qui vont ensemble pr les comparer au pseudo/pass rentré ?

Merci d'avance pour votre aide
A voir également:

2 réponses

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
7 mars 2009 à 12:58
Salut

En fait oui ce n'est pas la bonne methode.
Quand tu fait

$pseudo = mysql_query("SELECT pseudo FROM membres") or die(mysql_error());
$pseudo = mysql_fetch_array($pseudo);

Tu recupere tous les pseudo de ta base de donnée et tu en fait un tableau
Ensuite dans ton if tu compare le pseudo tapé par l'utilisateur avec le tableau de pseudo sans preciser d'index ce qui le fait ce planter en beauté ^^

En fait pour eviter que ce soit l'usine, le moyen le plus simple est

$pseudo = mysql_real_escape_string($_POST['pseudo']);
$pass = mysql_real_escape_string($_POST['pass']);

$verif = mysql_query("SELECT * FROM membres where pseudo='$pseudo' and pass='$pass' ") or die(mysql_error());

if (mysql_num_rows($verif) > 0){
// identification ok
} else {
// identification pas ok
}
1
Génial :). Ca fonctionne parfaitement.
J'avais commencé à rajouté le mysql_real_escape_string mais c'est bien dans le select que ça allait pas du tout ^^'.

Je te remercie :)
Bonne journée
0