Login et mot de passe

rabbouba1 Messages postés 9 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 6 juin 2010 - 3 juin 2010 à 12:17
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 :)

4 réponses

jihednond Messages postés 143 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 3 septembre 2011 1
3 juin 2010 à 13:27
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$");
?>

0
rabbouba1 Messages postés 9 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 6 juin 2010
3 juin 2010 à 13:51
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
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
3 juin 2010 à 13:53
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.
0
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,
mais moi j'arrive pas à s'authentifier avec ou sans avoir un compte
et ça, pour le moment, mon problème
et merci :)
0
Rejoignez-nous