Vérification de login et mot de passe [Fermé]

Messages postés
20
Date d'inscription
mercredi 13 novembre 2013
Statut
Membre
Dernière intervention
12 mars 2014
- - Dernière réponse : nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
- 14 nov. 2013 à 11:53
Bonjour,
Je cherche à vérifier le login et le mot de passe lorsqu'un utilisateur se connecte... Les informations sont contenues dans une base de données phpmyadmin.
je veux le fait en PDO et en Mysql. mais je suis un débutant et je doit concevoir une application dont cette parti est intégré.
aidez moi s'il vous plait.


le mot de passe ou le login est ide ou incorrect le programme affiche un message d'erreur


le mot de passe et le login sont corrects le programme affiche un message pour lui dit qu'il est connecté

merci d'avance
Afficher la suite 

2 réponses

Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
163
0
Merci
salut,

base de données phpmyadmin

euh .... non. phpmyadmin est l'interface fournit pour accéder à ta base de donnée mySQL (pas certain que ca ne concerne que le mySQL mais je ne sais pas).


ensuite, dire ca comme ca c'est léger :
- comment est la structure de ta table utilisateur?
- as tu déjà fais ton objet pdo ? (en fait, qu'est ce qui est déjà fait? )
- quel est le formulaire de connexion ?
- que devrait t'il se passer ensuite ? (redirection en fonction du résultat ou c'est un test à faire dans un conteneur ?)
- etc. ..


Beaucoup trop vague comme post, il faut un peu plus d'info pour qu'on puisse t'aider.

naga
Messages postés
20
Date d'inscription
mercredi 13 novembre 2013
Statut
Membre
Dernière intervention
12 mars 2014
0
Merci
merci nagashima



A force de fouiller j'ai fini par trouver quelque chose.
ça marche,
mais j'ai besoin de vos critiques pour améliorer.

<?php
session_start();
?>


<?php
include('connexion.php');

if ( isset($_POST['log']) and !empty($_POST['log']) and isset($_POST['passe']) and !empty($_POST['passe']))
// connexion de l'administrateur
{
$login = $_POST['log'];
$password = $_POST['passe'];

$verif= $bdd->prepare('SELECT * FROM administrateur WHERE login= :login AND pass_word= :mot_passe');
$verif->execute(array('login'=>$login,'mot_passe'=>$password));
$cpte= $verif->rowCount();

if($cpte==0)
{
echo'votre login ou mot de passe est incorrect';
include('formconnexion.php');


}

else
{
$res=$verif->fetch();
$_SESSION['id_admin'] = $res['id_admin'];
$_SESSION['nom_admin'] = $res['nom_admin'];
$_SESSION['prenom_admin'] = $res['prenom_admin'];
$_SESSION['login'] = $res['login'];
$_SESSION['pass_word'] = $res['pass_word'];
header ('Location: enrefou.php');


}
}

?>
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
163 -
que souhaite tu améliorer ?
sql_13
Messages postés
20
Date d'inscription
mercredi 13 novembre 2013
Statut
Membre
Dernière intervention
12 mars 2014
-
bonjour,

merci nagashuma

je veux améliorer la sécurité

un code php pour bloquer son compte en cas de tentatives non réussir et a chaque fois lui dit combien de tentative il lui reste.
nagashima
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
163 -
ok donc je vais te donner le principe

L'idée est d'avoir un compteur. Celui ci peu être à différent emplacement :
- soit un compteur que l'on passe en paramètre (par exemple une saisie caché envoyée en post, qui est incrémentée en cas d'erreur)
- une variable $_SESSION
- etc. (comme tu le sais, il n'y a pas de code prédéterminés).

et donc rajouter un libéllé indiquant les tentatives restantes (masquer la zone si c'est la première tentative par exemple).

Pour bloquer le compte, il te faut l'indiquer dans ta base de données. Par exemple on pourrai rajouter une colonne dans la table utilisateur qui indique l'état. Perso je préfère l'entier au booléen dans le sens ou il te permet d'indiquer plus d'information (compte bloqué -> définitif/provisoire, compte supprimé, etc. ).


par exemple dans le code que tu me montre :

if($cpte==0) 

{
echo'votre login ou mot de passe est incorrect';
include('formconnexion.php');

}

tu inclu ta "formconnexion", ce qui sous entend que les variable existants au dessus sont accéssibles => tu peux donc rajouter :
if($cpte==0) 

{
echo'votre login ou mot de passe est incorrect';
$variable_compteur = 1;

include('formconnexion.php');

}

et dans formconnexion, tester l'existence :
if(isset($variable_compteur))

{
...
}
else
{
...
}

le code que tu indiquera sera, par exemple, le contenu d'un champ caché dans le formulaire de post que tu pourras ensuite récupérer, ce qui donnera alors :
if ( isset($_POST['log']) and !empty($_POST['log']) and isset($_POST['passe']) and !empty($_POST['passe'])) 

// connexion de l'administrateur
{

//ici rien ne change
$login = $_POST['log'];
$password = $_POST['passe'];

$verif= $bdd->prepare('SELECT * FROM administrateur WHERE login= :login AND pass_word= :mot_passe');
$verif->execute(array('login'=>$login,'mot_passe'=>$password));
$cpte= $verif->rowCount();

if($cpte==0)
{
//--par contre ici, on récupère lnotre compteur pour l'incrémenter => il est en post
$variable_compteur = $_POST['compteur'];
$variable_compteur++;
if( $variable_compteur > 3)
{
//ici, si ton compteur dépasse le nombre d'essai possible, tu édite dans la base le blocage du compte et tu affiche ton message
//-----------------------------------
//-------------------------------------
}
{
//--sinon, l'utilisateur réessaye
echo'votre login ou mot de passe est incorrect';
include('formconnexion.php');
}


}



voilà je pense t'avoir donné matière à coder, si tu bloque sur certains points, demande ;)


naga