Login et mot de passe

Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010
- - Dernière réponse : rabbouba1
Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010
- 3 juin 2010 à 14:34
salut à tous, je suis débutante en php et j'essaye de faire un formulaire d'authentification mais j'ai rencontré un souci:
après enregistrement du login et du mot de passe dans une base de donnée MySQL on s'authentifie
code d'authentification

<?php
// Definition des constantes et variables
  
 //Connection à mysql et sélection de la base de données
 $connection = mysql_connect("localhost", "root", "") or die(mysql_error());
 mysql_select_db("site", $connection) or die(mysql_error());
 
 if (empty($_POST['user']))
{
die ("ERREUR: Entrez un nom d'utilisateur!");
}
// on vérifie que le pass n'est pas vide !!
elseif (empty($_POST['mdp']))
{
die ("ERREUR: Veuillez entrer un mot de passe!");
}
  //Préparation de la requête
 $query = ("SELECT * FROM inscription
            WHERE nom='".$_POST['user']."' 
AND mdp='".md5($_POST['mdp'])."'")
or die(mysql_error());
 
 //exécution de la requête et récupération du nombre de résultats
  
$result = mysql_query($query, $connection) or die ("Error in query: $query. " . mysql_error());
$data = (mysql_fetch_array($result) );
// Regarde les valeurs retournees par la base
if (mysql_num_rows($result) == 1)
{
// si une ligne est retournee,
// l'authentification est bonne
// crée le cookie avec le nom d'utilisateur et la session
session_start();

$_SESSION['user'] = $data['user']; 
setcookie("user", $_POST['user']);
// Sont-ils les mêmes que les constantes ?
 //S'il y a exactement un résultat, l'utilisateur est authentifié, sinon, on l'empêche d'entrer
 echo "Vous êtes connecté!";
 }
else
{
// sinon et bien qqch a mal fonctionné ! authentification impossible
echo "ERREUR: Login ou Mot de passe incorrect!";
}
?>


Mon problème c'est toujours le login ou mot de passe incorrect,,

s'il vous j'aimerai savoir comment corriger ça
et merci d'avance :)
Afficher la suite 

4 réponses

Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
0
Merci
je vous donne un bon correctif de votre script bien organisé sécurisé :

<?php
  session_start();
  require("../include/config.php");
   if(isset($_POST['login']) && isset($_POST['pass'])){
       $login=trim($_POST['login']);
   $pass=md5($_POST['pass']);
    echo $sql="SELECT * FROM `adminus` WHERE `user_admin` = '$login' AND `pass_admin` = '$pass'";
    $res=mysql_query($sql) or die(" requette non valide ");
$nb=mysql_num_rows($res);
if($nb>0){

$_SESSION['Auth'] = array(

'login'=>$login,
'pass'=>$pass

);
header("location:admin.php");
//echo "pass";
}
else
{
   echo "vérifier votre login ou mots de passe";
}
   }
?> 



pour crypté le pass utilise se script



<?php
echo $a=md5("admin789$");
?>

Commenter la réponse de jihednond
Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010
0
Merci
merci,
mais j'ai essayé avec ton script et il m'affiche la syntaxe de la requete avec les valeurs des input.

a propos du fichier "config.php": contient les variable de connexion à la base ou quoi?

Rque: le mot de passe enregistré dans la table est crypté

s'il vous plait explique-moi un peu et merci une autre foi
Commenter la réponse de rabbouba1
Messages postés
1310
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
0
Merci
Salut,

sécurisé

Non ce n'est pas du tout sécurisé. Regarde donc ce qu'il se passe si je rentre le login suivant (et n'importe quoi comme mot de passe) :
toto' OR 42=42 -- KTHXBYE


Réponse pour ceux qui ont la flemme de tester : je me suis authentifié sans même avoir de compte. Merci les injections de SQL Pour info c'est le seconde erreur de programmation la plus dangereuse d'après le classement CWE du MITRE.
Commenter la réponse de TychoBrahe
Messages postés
9
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
6 juin 2010
0
Merci
salut,
mais moi j'arrive pas à s'authentifier avec ou sans avoir un compte
et ça, pour le moment, mon problème
et merci :)
Commenter la réponse de rabbouba1