Problème authentification

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème authentification

Re: Problème authentification

par ladinho58 » 21 déc. 2011, 18:19

C'est bon, le problème a été résolu. Le problème venait du fait que l'ancien stagiaire avait utilisé la fonction md5 pour crypter les mot de passes. Et dans ma base de données, mon mot de passe n'était pas crypté. Il fallait connaitre sa valeur en md5 et mettre celle-ci dans la base de données.

Re: Problème authentification

par Aureusms » 21 déc. 2011, 00:09

Déjà une erreur ici : (manque un =)

$_SESSION['id_user'] = $res[0] au lieu de $_SESSION['id_user'] == $res[0]

Problème authentification

par ladinho580 » 20 déc. 2011, 16:35

Bonjour,

je suis stagiaire depuis 2 semaines dans le développement web et je continue le travail d'un ancien stagiaire. Je tiens à préciser que je n'ai jamais fait de PHP avant le commencement de mon stage. Ma compréhension est donc assez limitée, je m'en excuse d'avance.

Tout d'abord je vais vous expliquer dans quel environnement je travaille.
Je travaille sous Seven, j'ai installé WAMP et j'ai importé toutes mes tables vers la base de données dans laquelle je vais travailler.
Après avoir déplacé tous les fichiers php précédemment fait par l'ancien stagiaire dans le dossier c:\wamp\www, je décide de me connecter à l'adresse en localhost.

La page d'accueil mène vers un formulaire qui nous indique de nous identifier en présentant notre e-mail ainsi que notre mdp (au préalable, je me suis rajouté dans la table utilisateurs en tant qu'administrateur)
Et malgré le fait que j'indique de bons identifiant, on m'indique que l'authentification a échoué (je reçois dans la barre d'adresse la valeur a=authfail). si je reçois cette valeur, c'est que je ne suis pas rentré dans cette boucle if :

if(($_SESSION['id_user'] = $res[0]) && $res[1]!=3) //en ce qui concerne res[1], si il est égal à 3, nous sommes un ancien utilisateur, 0=admin
{
$_SESSION['droits'] = $res[1];
$_SESSION['id_region'] = $res[2];
$msg = "index.php?a=login";
$msg1 = "Authentification réussie.";
}
else{
session_destroy();
$msg = "index.php?a=authfail";
$msg1 = "Authentification échouée.";

Au préalable de cette boucle, voici ce qui est informé :

$email=mysql_escape_string($_POST['email']);
$pwd=mysql_escape_string($_POST['pwd']);
$url = $_GET['url'];

// on cherche dans la BDD l'e-mail entré dans le formulaire

$conn = mysql_connect(BDD_HOST,BDD_USER,BDD_PASSWD) or die('Impossible de se connecter à la base de données : ' . mysql_error());
mysql_select_db(BDD_NAME,$conn) or die('Impossible de sélectionner la base mydbname : ' . mysql_error());
$req = 'SELECT id_utilisateur,droits,id_region FROM utilisateur WHERE email = "' . trim($email) . '" and motdepasse = md5("'.$pwd.'") LIMIT 1';
$result = mysql_query($req) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $req);
$res = mysql_fetch_row($result);


Au final, ce que je pense comprendre de cette partie de programme, c'est qu'on compare une valeur dans une base de données à des variables de session, ce qui sous-entendrait qu'on se serait déjà logué quelque part, ailleurs que dans le formulaire que j'ai à remplir au début. Or, on ne se logue bien que dans ce formulaire !