Hi Community,
ich arbeite zurzeit an einem Internen Bereich mit Login. Hier möchte ich, dass wenn jemand 3 mal die falschen Zugangsdaten eingegeben hat, dass das Formular nicht mehr da ist und er erst nach einer gewissen Zeit erneut versuchen kann sich einzuloggen.
Wenn man nun testweise 3 mal etwas Falsches eingibt sagt er, dass man es erst in 15 erneut versuchen kann. So weit, so gut
Lädt man die Seite nach 1 Minute neu und schickt die daten erneut ab(muss jedesmal neu bestätigt werden) steht da noch 14 Minuten... Wenn man aber die Seite normal aktualisiert ohne die Daten erneut abzuschicken, steht wieder 15 Minuten da
Wie schaffe ich es, dass er eine Art Countdown macht und diesen auch bei neuladen aufrechterhält und nicht wieder von vorne anfängt??
Vielen vielen Dank!!
Lg phphtmlcss
Hier noch der Code von der Login Datei:
ich arbeite zurzeit an einem Internen Bereich mit Login. Hier möchte ich, dass wenn jemand 3 mal die falschen Zugangsdaten eingegeben hat, dass das Formular nicht mehr da ist und er erst nach einer gewissen Zeit erneut versuchen kann sich einzuloggen.
Wenn man nun testweise 3 mal etwas Falsches eingibt sagt er, dass man es erst in 15 erneut versuchen kann. So weit, so gut
Lädt man die Seite nach 1 Minute neu und schickt die daten erneut ab(muss jedesmal neu bestätigt werden) steht da noch 14 Minuten... Wenn man aber die Seite normal aktualisiert ohne die Daten erneut abzuschicken, steht wieder 15 Minuten da
Wie schaffe ich es, dass er eine Art Countdown macht und diesen auch bei neuladen aufrechterhält und nicht wieder von vorne anfängt??
Vielen vielen Dank!!
Lg phphtmlcss
Hier noch der Code von der Login Datei:
PHP-Code:
/*
* Autor : Dennis1993
* Copyright : (c) 2011 by Dennis1993
*/
session_start();
define('SECURE', true);
require_once('config.php');
error_reporting(0);
/**
* Anmeldevorgang
*/
# Sperrzeit in Sekunden
$timeDenied = 300;
# zusätzliche Versuche ohne den ersten
$maxTrys = 2;
# Auswerten der Versuche, wenn über $maxTrys
# $_SESSION['denied'] setzen und Versuche
# zurücksetzen
if(isset($_SESSION['trys']))
if($_SESSION['trys'] >= $maxTrys){
$_SESSION['denied'] = time()+$timeDenied;
unset($_SESSION['trys']);
}
# Prüfen ob Wartezeit abgelaufen ist
if(isset($_SESSION['denied']))
if($_SESSION['denied']-time() <= 0)
unset($_SESSION['denied']);
if(isset($_POST['send']))
{
$user_email = strip_tags(htmlentities(trim(htmlspecialchars($_POST['user_email'], ENT_QUOTES))));
$user_password = strip_tags(htmlentities(trim(htmlspecialchars($_POST['user_password'], ENT_QUOTES))));
$password = md5($user_password);
if(filter_var($user_email, FILTER_VALIDATE_EMAIL) && !empty($user_password) && !is_array($user_email) && !is_array($user_password))
{
$query = $SQL->prepare('SELECT `user_id` FROM `user` WHERE `user_email` = ? AND `user_password` = ?');
$query->bind_param('ss', $user_email, $password);
$query->execute();
$query->store_result();
$query->bind_result($user_id);
//Sind Benutzerdaten vorhanden und korrekt?
if($query->num_rows == 1)
{
$query->fetch();
$_SESSION['user_id'] = $user_id;
header('location: intern.php');
exit();
}
else
{
if(isset($_SESSION['trys']))
$_SESSION['trys'] = $_SESSION['trys'] + 1;
else
$_SESSION['trys'] = 1;
$error = "<p class='eingabefalsch'>Ihre Anmeldedaten sind nicht korrekt. Bitte wiederholen Sie Ihre Eingabe.<p>";
}
}
else
{
$error = 'Bitte füllen Sie alle Felder korrekt aus.';
}
}
else
{
$error = NULL;
$user_email = NULL;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-DE" lang="de-DE">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login</title>
</head>
<body>
<h1>Einloggen</h1>
<p>Um in den Internen Bereich zugelangen, loggen Sie sich bitte hier ein:</p>
<br />
<?php
echo $error;
if(isset($_SESSION['denied'])):
# Optionale Ausgabe der verbleibenden Wartezeit
$error = "";
echo "<p style='color:red;'>Formular noch für ".ceil(($_SESSION['denied']-time())/60)." Minuten gesperrt.</p>";
else:
?>
<form action="login.php" method="post">
<table cellpadding="1" cellspacing="4">
<tr>
<td><strong>E-Mail-Adresse:</strong> </td>
<td><input type="email" name="user_email" value="<?php echo $user_email; ?>" required placeholder="E-Mail-Adresse" maxlength="255" size="30"/></td>
</tr>
<tr>
<td><strong>Passwort:</strong></td>
<td><input type="password" name="user_password" required placeholder="Passwort" maxlength="50" size="30" /></td>
</tr><br />
<tr>
<td colspan="2"><input type="submit" name="send" value="Login" /></td>
</tr>
</table>
</form>
</body>
</html>
<?php
endif;
?>
Kommentar