A voir également:
- Login en php
- Facebook.com/login/identify en francais - Forum Facebook
- On me demande mon login ✓ - Forum Webmastering
- Easy php - Télécharger - Divers Web & Internet
- J’arrive plus à me connecter à mon compte Faceboo - Forum Facebook
- Qu'est ce qu'un login ? - Forum Réseaux sociaux
12 réponses
djflexlive
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
95
8 sept. 2009 à 06:08
8 sept. 2009 à 06:08
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.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
8 sept. 2009 à 12:06
8 sept. 2009 à 12:06
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 ;)
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
8 sept. 2009 à 12:48
8 sept. 2009 à 12:48
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!
djflexlive
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
95
9 sept. 2009 à 06:28
9 sept. 2009 à 06:28
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.';
}
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
9 sept. 2009 à 08:07
9 sept. 2009 à 08:07
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.
jeremieca
Messages postés
178
Date d'inscription
lundi 9 juillet 2007
Statut
Membre
Dernière intervention
16 mars 2015
28
9 sept. 2009 à 14:50
9 sept. 2009 à 14:50
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";
}
?>
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
10 sept. 2009 à 12:33
10 sept. 2009 à 12:33
Ce qui reviens exactement a ce que j'avais mis plus haut en fait.
Gamma
>
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
10 sept. 2009 à 14:02
10 sept. 2009 à 14:02
Arthesius,
Oui, c'est à partir de ton code que j'ai mon résultat...mais comme je mentionne, j'arrive pas à empêcher l'utilisateur de se connecter même après 3 tentative et ce, avec le 300 secondes (5 minutes) d'expiration...
Oui, c'est à partir de ton code que j'ai mon résultat...mais comme je mentionne, j'arrive pas à empêcher l'utilisateur de se connecter même après 3 tentative et ce, avec le 300 secondes (5 minutes) d'expiration...
Gamma
>
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
10 sept. 2009 à 14:02
10 sept. 2009 à 14:02
Arthesius,
Oui, c'est à partir de ton code que j'ai mon résultat...mais comme je mentionne, j'arrive pas à empêcher l'utilisateur de se connecter même après 3 tentative et ce, avec le 300 secondes (5 minutes) d'expiration...
Oui, c'est à partir de ton code que j'ai mon résultat...mais comme je mentionne, j'arrive pas à empêcher l'utilisateur de se connecter même après 3 tentative et ce, avec le 300 secondes (5 minutes) d'expiration...
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
10 sept. 2009 à 21:41
10 sept. 2009 à 21:41
Peut-tu m'expliquer comment se place ce code par rapport à ta page de connection?
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!