Ajouter un compte à rebours

Résolu/Fermé
madeog Messages postés 74 Date d'inscription vendredi 12 octobre 2018 Statut Membre Dernière intervention 2 mars 2021 - Modifié le 18 avril 2019 à 17:55
madeog Messages postés 74 Date d'inscription vendredi 12 octobre 2018 Statut Membre Dernière intervention 2 mars 2021 - 19 avril 2019 à 05:16
Bonjour,
j'ai fait ce code mais je n'arrive pas a rendre le compte a rebout automatique. pouvez voir mon code. merci de m'aider

le code html
<!DOCTYPE html>
<html>
<head>
<title>LOGIN</title>
<meta charset="utf-8"/>
<link rel="stylesheet" href="../style/login.css">
<script src="../script/login.[/javascript/jsintro.php3 js]"></script>
</head>
<body>
<div class="container">
<div class="main">
<h2>LOGIN</h2>
<form id="form_id" method="post" name="myform">
<label>UserName :</label>
<input type="text" name="username" id="username"/>
<label>Password :</label>
<input type="password" name="password" id="password"/>
<input type="button" value="Login" id="submit" onclick="validate()"/>
</form>
</div>
</div>
</body>
</html>








var attempt = 3; // Variable to count number of attempts.

// Below function Executes on click of login button.
function validate(){
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if ( username == "marie" && password == "12345"){
alert ("connexion avec succès");
window.location = "youtube.html"; // Redirecting to other page.
return false;
}
else{
attempt --;// Decrementing by one.
alert("You have left "+attempt+" attempt;");
}
// Disabling fields after 3 attempts.
if( attempt == 0){
document.getElementById("username").disabled = true;
document.getElementById("password").disabled = true;
document.getElementById("submit").disabled = true;

// Déclaration et initialisation de secondes et d'un compteur
var seconde= 0;
var i = 30;

// compte à rebours de 30 secondes dans une alerte qui bloque la page de connexion
while(i > seconde)
{
	i--;
	window.alert("Page bloquée! Dans " + i +" secondes, elle sera active.");
}

// Réactivation des champs de textes pour réinscrire les bonnes informations de l'utlisatrice
if(i == seconde)
{
	document.getElementById("username").disabled = false;
	document.getElementById("password").disabled = false;
	document.getElementById("submit").disabled = false;
}
}	
}














A voir également:

1 réponse

Bonjour,
plutôt utiliser setInterval pour ça :
https://www.w3schools.com/jsref/met_win_setinterval.asp

Parce que dans votre code while ne va pas mettre une seconde à s’exécuter, beaucoup moins vous ne faites que compter de 30 à 0 ce qui est assez rapide pour un ordinateur.
Je rappellerais aussi que votre mot de passe n'est pas du tout sécurisé, n'importe qui peut afficher le JavaScript donc avoir accès à ce qui est inscrit :
username == "marie" && password == "12345"

Pour avoir une vraie sécurité vous pouvez utiliser une base de données avec un langage serveur(donc pas JavaScript). Il y a d'autres solutions mais la base de données reste la plus robuste et sécurisée car permet aussi de donner accès à la page uniquement si l'utilisateur est connecté(par les variables de session en PHP par ex.).
0
madeog Messages postés 74 Date d'inscription vendredi 12 octobre 2018 Statut Membre Dernière intervention 2 mars 2021
19 avril 2019 à 05:16
bonsoir acker. je te remercie
0