Page 1 sur 1

Vérification du login et du mdp

Posté : 31 oct. 2012, 11:48
par alexandre44
Bonjour, après moult recherches sur le Web je n'ai pas trouvé chaussure à mon pied.

Dans mon appli' deux types de membres peuvent se connecter.
Vous êtes un:
			<input type='radio' value='eleve' name='typeMembre'> élève
			<input type='radio' value='professeur' name='typeMembre'> professeur



Ce qui me donne à la reception :
<?php
session_start(); 
include ('mesFonctions.php');
$uneConnexion=connexion();
if(isset($_POST))
	{
	$_SESSION['Auth'] = array (
			'identifiant' => $_POST['identifiant'],
			'mot_de_passe' => $_POST['mot_de_passe']
			);
	}

if (isset($_SESSION['Auth'])  && !empty($_POST['identifiant']) && !empty($_POST['mot_de_passe']))
				&& !mdpValide($uneConnexion[1],$_POST['identifiant'],$_POST['mot_de_passe'],$_POST['typeMembre']))
	{	 ... }
J'arrive donc dans mon fichier 'mesFonctions.php'
function mdpValide($uneConnexion,$login,$mdp,$typeMembre) 
		{
        $leBonMdp=false;
		$requete = "SELECT mdp FROM $typeMembre WHERE login='$login'";
		$resultatRequete = $uneConnexion->query($requete);
	   
		if ($resultatRequete == $mdp){
			$leBonMdp=true;
			} 
        return $leBonMdp;
		}
C'est ici que j'ai mon problème où $leBonMdp renvoi false alors qu'il ne devrait pas.
C'est lié à ma mauvaise connaissance de la comparaison mais je ne sais pas comment faire.

Merci d'avance de vos réponses !

Re: Vérification du login et du mdp

Posté : 31 oct. 2012, 12:30
par dix2
salut,

la fonction qui teste l'identification :
/**
 * Fonction permettant de tester si une personne est identifiée
 * Cette fonction lance une exception execQueryMysqlException si l execution de la requete a échoué
 * @param string $login
 * @param string $password
 * @param object $dbh1
 * @return string or bool
 */
function isIdentified($login, $password, $dbh1){
    $req1 =
        "SELECT `statut`
         FROM `compte`
         WHERE `login` = '".$login."'
         AND `password` = '".$password."'";
    $res1 = $dbh1->query($req1);
    if ( $row1 = $res1->fetch() ) {
        return $row1[0];
    }
    else {
        return false;
    };
}
De plus, ce n'est pas à l'utilisateur de cocher s'il est étudiant ou professeur
C'est à toi de récupérer l'info dans la base de données
La fonction ci-dessus teste l'identification et renvoie le statut si l'identification est OK

@+
dix2

Re: Vérification du login et du mdp

Posté : 31 oct. 2012, 12:44
par sadeq
function mdpValide($uneConnexion,$login,$mdp,$typeMembre) 
		{
        $leBonMdp=false;
		$requete = "SELECT mdp FROM $typeMembre WHERE login='$login'";
		$resultatRequete = $uneConnexion->query($requete);
	   
		if ($resultatRequete == $mdp){
			$leBonMdp=true;
			} 
        return $leBonMdp;
		}
C'est ici que j'ai mon problème où $leBonMdp renvoi false alors qu'il ne devrait pas.
C'est lié à ma mauvaise connaissance de la comparaison mais je ne sais pas comment faire.

Merci d'avance de vos réponses !
Effectivement, si la méthode $uneConnexion->query($requete); ne retourne pas la valeur du champ mdp de la requête alors le test IF qui suit ne fonctionnera jamais. Je ne sais pas comment est écrite la méthode query de l'objet connexion mais à mon avis elle ne retourne pas directement la valeur du champ donné dans le SELECT.

Je te préconise cette solution SQL qui interroge le mdp tout comme tu fais avec le login:
$requete = "SELECT count(*) as nbre FROM $typeMembre WHERE login='$login' AND mdp='$mdp' ";

Re: Vérification du login et du mdp

Posté : 01 nov. 2012, 16:46
par alexandre44
Bonjour,

en fait c'est que j'utilise deux tables différentes.
Et sadeq j'ai pris ta solution, merci bien à vous deux.

Re: Vérification du login et du mdp

Posté : 01 nov. 2012, 16:47
par alexandre44
Comment je fais pour mettre en résolu ?

Re: Vérification du login et du mdp

Posté : 01 nov. 2012, 22:46
par moogli
tu ne peux pas il faut être membre, un modérateur doit pouvoir s'en occuper.


@+