[php] Identifier un uutiilisateur

Identifier un uutiilisateur [php] - PHP - Programmation

Marsh Posté le 08-02-2007 à 10:20:59    

Bonjour a tous!
Je viens de comprendre comment on se sert des sessions. J'ai fait une recherche sur google pour savoir comment identifier un utilisateur qui c'est bien enregistre au prealable sur ma base(je nai pas vraiment trouve ce que je cherche)
Dans ma base j'ai donc une table user contenant plein de champs dont un champ login et un champ password.
Je voudrais donc comparer le login et le password que saisi l'utilisateur par rapport a ceux qui se trouve dans la base afin qu'il puisse acceder a son compte. Quelqu'un
conaitrait-il un site complet la dessus ou pourait-il m'expliquer comment proceder???  
Merci.


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
Reply

Marsh Posté le 08-02-2007 à 10:20:59   

Reply

Marsh Posté le 08-02-2007 à 11:36:55    

sujet maintes fois abordé, tu trouveras plein d'exemple avec google
 

drexlbob a écrit :

Je voudrais donc comparer le login et le password que saisi l'utilisateur par rapport a ceux qui se trouve dans la base

tu sais faire une requête sql ? si oui tu devrais trouver la réponse tout seul

Reply

Marsh Posté le 08-02-2007 à 13:16:39    

ben tu récupères les variables entrées via $_POST['']; pour le pseudo et le password;
tu fais une requête sql pour comparer le pass dans la bdd avec celui  rentré dans le formulaire de connection...
je vois pas la difficulté :heink:
 
et comme dit plus haut, google est ton ami ^^

Reply

Marsh Posté le 08-02-2007 à 13:54:25    

Mxtrem a écrit :

ben tu récupères les variables entrées via $_POST['']; pour le pseudo et le password;
tu fais une requête sql pour comparer le pass dans la bdd avec celui  rentré dans le formulaire de connection...
je vois pas la difficulté :heink:
 
et comme dit plus haut, google est ton ami ^^


 
OK c ce que j'ai fait mais ca ne marche pas  
Voila le code :
 
$login= $_POST['login'];
$pass=$_POST['pass'];
 
 $selection = "SELECT * FROM `user` WHERE `login` LIKE '$login_in_db' AND `pass` LIKE '$pass_in_db' LIMIT 0, 30 ";
 
 $result =  mysql_query($seletion);
 //echo $result;
 if ($login_in_db == $login && $pass_in_db == $pass)
   {
     echo "$pass <br />";
     echo "$login<br />";
     echo "Authentification russie <br />";
   }
 else
   echo "Authentification echoue
 
Merci de ton aide!


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
Reply

Marsh Posté le 08-02-2007 à 14:04:51    

Un petit coté "garcimore de la variable" dans ton script :o
ça sort d'ou $login_in_db et $pass_in_db.
Ensuite si tu lisais la doc tu verrais qu'un mysql_query tout seul n'est pas suffisant lors d'un select et que tu as besoin de fetch.
Enfin ton script présente un faille classique dite "sql injection".  
 
Conseil: Mets pas la charue avant les boeufs et commence doucement par apprendre les bases du php, ensuite ça viendra tout seul.

Reply

Marsh Posté le 08-02-2007 à 14:18:37    

anapajari a écrit :

Un petit coté "garcimore de la variable" dans ton script :o
ça sort d'ou $login_in_db et $pass_in_db.
Ensuite si tu lisais la doc tu verrais qu'un mysql_query tout seul n'est pas suffisant lors d'un select et que tu as besoin de fetch.
Enfin ton script présente un faille classique dite "sql injection".  
 
Conseil: Mets pas la charue avant les boeufs et commence doucement par apprendre les bases du php, ensuite ça viendra tout seul.


 
OK, merci pour le conseil c'est vrai que je veux aller un peu trop vite mai qu'est ce que je dois mettre a la place des variables pass_in_db et login_in_db (pour pouvoir comparer a $_POST['login'] et $_POST['pass'], je suis obliger d'utiliser des variabe nan ???, je ne vais pas mettre ca en dur un par un lol)
 
Je te remet donc un extrait de mon code avec un fetch et deux valeur en dur qui existent dans ma base (j'ai tester la requete testees dans phpmyadmin mai lorseque je le met dans mysal_query ca me renvoi une erreur "Query was empty " bizar):
 
 


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
Reply

Marsh Posté le 08-02-2007 à 14:19:20    

J'ai oublier le code  
 
voila : $db_selected = mysql_select_db('site');
if (!$db_selected)  
{
   die('Impossible de se connecter : ' . mysql_error());
}
 
  $selection = "SELECT * FROM `user` WHERE `login` LIKE 'dilob' AND `pass` LIKE 'qwerty' LIMIT 0, 30 ";
 
 $result =  mysql_query($seletion);
if (!$result)  
  {
    echo "Impossible d'executer la requete ($sql) dans la base : " . mysql_error();
    exit;
  }
 var_dump($result);
 
 echo $result;
 
 if (mysql_num_rows($result) == 0)  
   {
     echo "Aucune ligne trouve, rien a afficher.";
     exit;
   }
 
 
while ($row = mysql_fetch_assoc($result))  
{
   echo $row["pass"];
   echo $row["login"];
}
 


---------------
L'etre humain juge tres vite comprend lentement, s'enerve facilement et perd vite ses facultees d'enfant!!!!
Reply

Marsh Posté le 08-02-2007 à 22:03:00    

drexlbob a écrit :

J'ai oublier le code  
 
voila : $db_selected = mysql_select_db('site');
if (!$db_selected)  
{
   die('Impossible de se connecter : ' . mysql_error());
}
 
  $selection = "SELECT * FROM `user` WHERE `login` LIKE 'dilob' AND `pass` LIKE 'qwerty' LIMIT 0, 30 ";
 
 $result =  mysql_query($seletion);
if (!$result)  
  {
    echo "Impossible d'executer la requete ($sql) dans la base : " . mysql_error();
    exit;
  }
 var_dump($result);
 
 echo $result;
 
 if (mysql_num_rows($result) == 0)  
   {
     echo "Aucune ligne trouve, rien a afficher.";
     exit;
   }
 
 
while ($row = mysql_fetch_assoc($result))  
{
   echo $row["pass"];
   echo $row["login"];
}


 
 

Reply

Marsh Posté le 09-02-2007 à 09:46:08    

Avec affichage des erreurs et des warning, c'est le genre d'erreur corrigée en 3 secondes...  :sarcastic:


Message édité par soulmanto le 09-02-2007 à 09:46:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed