A voir également:
- Login en php
- On me demande mon login ✓ - Forum Webmastering
- Mon pc me demande mon login é mon mo de passe - Forum Windows
- Facebook.com/login/identify en francais ✓ - Forum Réseaux sociaux
- Easy php - Télécharger - Divers Web & Internet
- Portail mpsa login ✓ - Forum Réseau
12 réponses
Si tu utilises une base de données ou fichiers textes, tu peux utiliser un système de sessions pour "tracker" les tentatives de logins infructueuses.
Au lieu de placer un cookie chez le visiteur, tu mémorisera son ip pour une durée de 5 minutes. Il est plus rapide de vider ses cookies que de changer son ip (sauf si il passe par un proxy). Mais dans l'ensemble, je préconiserai cette solution.
Au lieu de placer un cookie chez le visiteur, tu mémorisera son ip pour une durée de 5 minutes. Il est plus rapide de vider ses cookies que de changer son ip (sauf si il passe par un proxy). Mais dans l'ensemble, je préconiserai cette solution.
Merci DJflexlive,
Je comprends ta logique mais mon problème est que la raison que je dois faire un cookie est dans le cadre d'une formation et dans l'exercice c'est la seule partie que je reste bloqué, je n'ai donc pas de base de donnée. Est-ce que je dois faire une fonction qui va incrémenter pour compter les tentatives?
merci beacoup d'avoir pris le temps de me répondre.
Je comprends ta logique mais mon problème est que la raison que je dois faire un cookie est dans le cadre d'une formation et dans l'exercice c'est la seule partie que je reste bloqué, je n'ai donc pas de base de donnée. Est-ce que je dois faire une fonction qui va incrémenter pour compter les tentatives?
merci beacoup d'avoir pris le temps de me répondre.
bonjour...
si ca peut taider...voici les fonction en javascript pour gérer les cookies :
function SetCookie(Identifiacteur,Valeur){
var Recharge=false;
var expdate = new Date ();
var noexpdate = new Date ();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 2));// 1 jour
noexpdate.setTime(expdate.getTime() + (365 * 24 * 60 * 60 * 1000 * 2));// 1 an
if (Identifiacteur == "Lang"){
document.cookie = Identifiacteur + "=" + Valeur + "; expires=" + noexpdate.toGMTString();
}else{
document.cookie = Identifiacteur + "=" + Valeur + "; expires=" + expdate.toGMTString();
}
}
function getCookieVal(offset) {
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1)
endstr = document.cookie.length;
return document.cookie.substring(offset, endstr);
}
function GetCookie (name) {
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen) {
var j=i+alen;
if (document.cookie.substring(i, j)==arg)
return getCookieVal (j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return null;
}
Si tu as des questions... hesite pas ;)
si ca peut taider...voici les fonction en javascript pour gérer les cookies :
function SetCookie(Identifiacteur,Valeur){
var Recharge=false;
var expdate = new Date ();
var noexpdate = new Date ();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 2));// 1 jour
noexpdate.setTime(expdate.getTime() + (365 * 24 * 60 * 60 * 1000 * 2));// 1 an
if (Identifiacteur == "Lang"){
document.cookie = Identifiacteur + "=" + Valeur + "; expires=" + noexpdate.toGMTString();
}else{
document.cookie = Identifiacteur + "=" + Valeur + "; expires=" + expdate.toGMTString();
}
}
function getCookieVal(offset) {
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1)
endstr = document.cookie.length;
return document.cookie.substring(offset, endstr);
}
function GetCookie (name) {
var arg=name+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen) {
var j=i+alen;
if (document.cookie.substring(i, j)==arg)
return getCookieVal (j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;
}
return null;
}
Si tu as des questions... hesite pas ;)
Sinon tu fais un cookie qui comptabilise les tentatives.
Exemple:
En adaptant ce code ça devrai pouvoir faire ce que tu veux.
Exemple:
if(!isset($_COOKIE['count']))
{$temps = 1800;
setcookie ("count", "1", time() + $temps);}
elseif($_COOKIE['count']=="1")
{$temps = 1800;
setcookie ("count", "2", time() + $temps);}
elseif($_COOKIE['count']=="2")
{$temps = 1800;
setcookie ("count", "3", time() + $temps);}
else{echo"Vous avez tenté trois fois de vous connecter.";}
En adaptant ce code ça devrai pouvoir faire ce que tu veux.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup...ca fonctionne, il affiche le message après le 3e échec. Mais y a-t-il une façon d'empêcher l'utilisateur de se reconnecter lors des 5 prochaines minutes?
Merci encore!
Merci encore!
Tu remplaces echo "Vous avez tenté trois fois de vous connecter."; par $authorized_login = 'no';
Et ensuite :
if ( isset($authorized_login) ) {
TON FORMULAIRE DE LOGIN
} else {
echo 'Vous ne pouvez pas vous identifier pendant 5 minutes.';
}
Et ensuite :
if ( isset($authorized_login) ) {
TON FORMULAIRE DE LOGIN
} else {
echo 'Vous ne pouvez pas vous identifier pendant 5 minutes.';
}
sinon, tu met l exiration du cookies à 5 minutes... si la derniere tentative de connection est de plus de 5 min, le cookie est donc expiré et n est pas pris en compte ;)
Vous allez me trouver poche, mais j'ai essayer les 2 façons et ça fonctionne pas...je met une expiration a mon cookie mais ca m'empêche pas de pouvoir me connecter.
Bah tu enregistre son ip et l'heure de ses essaies dans une table de ta bdd et si ça le total d'entrée pour une IP dépasse 3 alors tu vérifies que il y est 5 mn d'écoulée depuis la dernière date. Lorsque l'utilisateur parvient à se connecter, supprime toutes les entrées liées à son IP et voila !
A plus.
A plus.
Ca semble facile mais j'en suis pas rendu la dans mes connaissances en php et j'utilise pas de bdd.
Voici je ce que j'ai comme code présentement...le message s'affiche pour bannir l'usager mais dans les faits, il peut se reconnecter immédiatement..
merci pour toute l'aide reçu jusqu'a présent!
<?php
if(!isset($_COOKIE['tentative']))
{
setcookie ("tentative", "1", time() + 300);
}
elseif($_COOKIE['tentative']=="1")
{
setcookie ("tentative", "2", time() + 300);
}
elseif($_COOKIE['tentative']=="2")
{
setcookie ("tentative", "3", time() + 300);
}
else
{
echo "L'authentification est verrouillé pour 5 minutes puisque vous avez eu 3 mauvaises tentatives
d'authentification. Vous devez ré-essayer plus tard";
}
?>
Voici je ce que j'ai comme code présentement...le message s'affiche pour bannir l'usager mais dans les faits, il peut se reconnecter immédiatement..
merci pour toute l'aide reçu jusqu'a présent!
<?php
if(!isset($_COOKIE['tentative']))
{
setcookie ("tentative", "1", time() + 300);
}
elseif($_COOKIE['tentative']=="1")
{
setcookie ("tentative", "2", time() + 300);
}
elseif($_COOKIE['tentative']=="2")
{
setcookie ("tentative", "3", time() + 300);
}
else
{
echo "L'authentification est verrouillé pour 5 minutes puisque vous avez eu 3 mauvaises tentatives
d'authentification. Vous devez ré-essayer plus tard";
}
?>
Voici....
------------------------------------
J'ai ma page d'authentification:
-----------------------------------
<html>
<head>
<title>page_authentification</title>
</head>
<body>
<?php
if(isset($_POST['nomUsager'], $_POST['motDePasse']))
return authentification($_POST['nomUsager'], $_POST['motDePasse']);
else
echo "Entrez votre nom d'usager et votre mot de passe pour continuer
<form name=identification method=POST action='verification_authentification.php'>
Nom d'usager : <input type=text name=nomUsager> <br>
Mot de passe : <input type=text name=motDePasse> <br>
<input type=submit value=logger>
</form>";
?>
</body>
</html>
------------------------------------
puis la page de verification...
-----------------------------------
<?php
if(!isset($_COOKIE['count']))
{
setcookie ("count", "1", time() + 300);
}
elseif($_COOKIE['count']=="1")
{
setcookie ("count", "2", time() + 300);
}
elseif($_COOKIE['count']=="2")
{
setcookie ("count", "3", time() + 300);
}
else
{
$authorized_login = "no";
echo "L'authentification est verrouillé pour 5 minutes puisque vous avez eu 3 mauvaises tentatives
d'authentification. Vous devez ré-essayer plus tard";
}
?>
<html>
<head>
<title>verification_authentification</title>
</head>
<body>
<?php
function authentification($usager, $mdp)
{
if ($usager=="david" && $mdp=="abc123")
echo "Authentification réussi! Bienvenue David <br>";
else
{
echo 'Vous ne pouvez pas vous identifier pendant 5 minutes.';
}
}
$usager=$_POST["nomUsager"];
$mdp=$_POST["motDePasse"];
authentification($usager, $mdp);
?>
<a href="http://localhost/page_authentification.php">
Retourner au formulaire d'authentification</a>
</body>
</html>
Merci...j'apprécie vraiment ton aide arthezius!
------------------------------------
J'ai ma page d'authentification:
-----------------------------------
<html>
<head>
<title>page_authentification</title>
</head>
<body>
<?php
if(isset($_POST['nomUsager'], $_POST['motDePasse']))
return authentification($_POST['nomUsager'], $_POST['motDePasse']);
else
echo "Entrez votre nom d'usager et votre mot de passe pour continuer
<form name=identification method=POST action='verification_authentification.php'>
Nom d'usager : <input type=text name=nomUsager> <br>
Mot de passe : <input type=text name=motDePasse> <br>
<input type=submit value=logger>
</form>";
?>
</body>
</html>
------------------------------------
puis la page de verification...
-----------------------------------
<?php
if(!isset($_COOKIE['count']))
{
setcookie ("count", "1", time() + 300);
}
elseif($_COOKIE['count']=="1")
{
setcookie ("count", "2", time() + 300);
}
elseif($_COOKIE['count']=="2")
{
setcookie ("count", "3", time() + 300);
}
else
{
$authorized_login = "no";
echo "L'authentification est verrouillé pour 5 minutes puisque vous avez eu 3 mauvaises tentatives
d'authentification. Vous devez ré-essayer plus tard";
}
?>
<html>
<head>
<title>verification_authentification</title>
</head>
<body>
<?php
function authentification($usager, $mdp)
{
if ($usager=="david" && $mdp=="abc123")
echo "Authentification réussi! Bienvenue David <br>";
else
{
echo 'Vous ne pouvez pas vous identifier pendant 5 minutes.';
}
}
$usager=$_POST["nomUsager"];
$mdp=$_POST["motDePasse"];
authentification($usager, $mdp);
?>
<a href="http://localhost/page_authentification.php">
Retourner au formulaire d'authentification</a>
</body>
</html>
Merci...j'apprécie vraiment ton aide arthezius!