Php/mysql

Résolu
thomason Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je veux vérifier le login et le mot de passe dans ma base
que j'ai créée sur mysql
voici le code que j'ai commencé



<?php

$bdd = "projet";
$host= "localhost";
$user= "root";
$pass= "";

if (mysql_connect($host,$user,$pass)){
echo'connection réussie.<br>';
}
else {
echo '"Impossible de se connecter à la base de données"'.mysql_error(); }
if(mysql_select_db('projet')){
echo' bd choisie';
}
else{
echo'"erreur"'.mysql_error();

}
$log=$_POST["login"];
$pass=$_POST["password"];

$requete= " SELECT login , password FROM user WHERE (login='$log' AND password='$pass' )";
$resultat=mysql_query($requete) or die ('erreur'.$requete.'' .mysql_error());

?>
A voir également:

2 réponses

nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
je te conseillerais plutot de faire comme ça :

$log=$_POST["login"];
$pass=$_POST["password"];

$requete= " SELECT password FROM user WHERE login='$log'";
$resultat=mysql_query($requete) or die ('erreur '.$requete.' '.mysql_error()); 
$tabReponse= mysql_fetch_row($resultat);
if ($tabReponse['password'] == $pass) echo 'le mot de passe est bon';
else echo 'erreur, mauvais mot de passe';
0
thomason Messages postés 91 Date d'inscription   Statut Membre Dernière intervention  
 
merci ça marche avec

if ($tabReponse[0] == $pass) echo 'le mot de passe est bon';
else echo 'erreur, mauvais mot de passe';


mais comment vais-je crypter le mot de passe?
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113 > thomason Messages postés 91 Date d'inscription   Statut Membre Dernière intervention  
 
pour si tu le cryptes en MD5:
if ($tabReponse[0] == md5($pass)) echo 'le mot de passe est bon';
else echo 'erreur, mauvais mot de passe'; 


edit : sachant que le $tabReponse[0] provient de la base de donnée et donc devra déjà etre crypté par md5
tu aura donc un truc dans ce genre pour l'inscription
$pass = md5($_POST[pass])
mysql_query(insert $pass into etc ...)



ps : bravo pour avoir corrigé mon erreur ^^
habituelement j'utilisais mysql_fetch_array donc ça aurait été ['password'] mais la j'ai mis fetch row donc ça doit etre [0] comme tu as trouvé

ps2 :
bien sur il faut aussi garder comme l'as dit je sais plus qui juste en dessous
$log = mysql_real_escape_string(htmlspecialchars($_POST['login']));­
au lieu de
$log = $_POST['login'];­
pour le pass c'est bon puisqu'il sera crypté
0
PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30 > thomason Messages postés 91 Date d'inscription   Statut Membre Dernière intervention  
 
Et ne pas oublier de le crypter dans la base de donnée lord de l'insertion aussi !
0
PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30
 
Et ne pas oublier pour éviter les injections sql/xss :
$log = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$pass = mysql_real_escape_string(htmlspecialchars($_POST['password']));


Je te conseille aussi de crypter tes mots de passe lors de l'insertion dans ta BDD par exemple avec md5() puis tu compares le hachage md5 avec celui de ta BDD.
Seul problème avec ce système, c'est que t'es obligé de regénérer un mot de passe si un utilisateur l'a perdu.
0
thomason Messages postés 91 Date d'inscription   Statut Membre Dernière intervention  
 
comment faire cà?
as-tu un code source disponible?
ça m'intéresse!!!!!
0