Page 1 sur 1

authentification avec delai

Posté : 21 juin 2010, 16:54
par esteller
J'aimerai que apres 15 secondes si l'utilisateur n'a pas pu s'authentifier qu'une autre page s'affiche lui informant que son delai d'authentification est passé.voici mon code qui ne fait pas cela mais l'authentification marche.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
var autoCloseTimer;
var timeoutObject;
var timePeriod = 5000; // 5 seconds
var warnPeriod = 15000; // 15 seconds

function promptForClose()
{
autoCloseDiv.style.display = 'block';
autoCloseTimer = setTimeout("definitelyClose()",warnPeriod);
}
	
function autoClose()
{
autoCloseDiv.style.display = 'block'; //shows message on page
autoCloseTimer = setTimeout("definitelyClose()",timePeriod); //starts countdown to closure
}	
function cancelClose()
{
clearTimeout(autoCloseTimer); //stops auto-close timer
autoCloseDiv.style.display = 'none'; //hides message
}

function resetTimeout()
{
clearTimeout(timeoutObject); //stops timer
timeoutObject = setTimeout("promptForClose()",timePeriod); //restarts timer from 0
}	
function definitelyClose() {
top.opener = self;
top.window.close();
}
-->
</SCRIPT>

</head>
<body  onkeydown="resetTimeout();" onmousedown='resetTimeout();' onload="timeoutObject=setTimeout('promptForClose()',timePeriod);">
<div id='autoCloseDiv' style="display:none">
       <center><p>Inactivity warning!<br>This window will autoclose in 15 seconds unless you hit 'Cancel.'</p>
       <input type='button' value='Close' onclick='definitelyClose();' />
       <input type='button' value='Cancel' onclick='cancelClose();' />
       </center>
     </div>
<?php
function afficherformulaire ($u = '', $error = '')
{
if ($error != '')
echo '<font color="red">' . $error . '</font>';
?>
<form name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="POST">
<table border="0" align="center">
<tr><td colspan="2" align="center"><h2><u>Formulaire de
connexion</u></h2></td></tr>
<tr><td><b>Nom d'utilisateur :</b></td>
<td><input name="utilisateur" type="text"
value="<?php echo $u; ?>"></td></tr>
<tr><td><b>Mot de passe :</b></td>
<td><input name="password" type="password"></td></tr>
<tr><td align="center" colspan="2">
<input type="submit" name="valider" value="Valider"
onClick="return onValider();">
<input type="submit" name="annuler" value="Annuler"></td></tr>
</table>
</form>
<script type="text/JavaScript">
function onValider()
{
if (document.form1.utilisateur.value == '') {
alert("Veuiller taper un nom d'utilisateur.");
return false;
}
if (document.form1.password.value == '') {
alert("Veuiller taper un mot de passe.");
return false;
}
return true ;
}
</script>
<?php
} //fin de la fonction afficherformulaire()
if (!isset ($_POST["valider"]) && !isset($_POST['annuler']))
{
afficherformulaire();
}
if (isset($_POST["annuler"]))
{
header("Location:Annuler.php");
$utilisateur="";
$password="";
}
if (isset($_POST["valider"]))
{
require_once("Connexion.php");
$query = "select login,password from user where login='" .
addslashes($_POST["utilisateur"]) . "' and password = '"
. addslashes($_POST["password"]) . "'";
$result = mysql_query($query) or die();
if(mysql_num_rows($result)>0)
{
header("location:Accueil.php");
}
else
{
afficherformulaire($_POST["utilisateur"],
"Nom d'utilisateur ou mot de passe incorrect");
}
}
//Fin du fichier
?>
</body>
si vous pouvez m'aidez

Re: authentification avec delai

Posté : 22 juin 2010, 07:53
par stopher
Salut ,

ton probléme vient de là :
onload="timeoutObject=setTimeout('promptForClose()',timePeriod);"
promptForClose() posséde déjà un timer , pourquoi en rajouter un dans le formulaire ?
essaye en faisant un appel comme ceci :

... onload="promptForClose()" ...

Ch.