Php/mysql

Résolu/Fermé
thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008 - 23 juil. 2008 à 11:31
PeterPeterPeter Messages postés 202 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 22 juin 2010 - 23 juil. 2008 à 12:27
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());

?>

2 réponses

nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
23 juil. 2008 à 11:38
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 jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
23 juil. 2008 à 12:22
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 lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113 > thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
23 juil. 2008 à 12:24
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 jeudi 17 juillet 2008 Statut Membre Dernière intervention 22 juin 2010 30 > thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
23 juil. 2008 à 12:27
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 jeudi 17 juillet 2008 Statut Membre Dernière intervention 22 juin 2010 30
23 juil. 2008 à 11:46
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 jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
23 juil. 2008 à 12:25
comment faire cà?
as-tu un code source disponible?
ça m'intéresse!!!!!
0