Hallo liebe Community 
Ich bastel im Moment an einer Internetseite
Grade versuche ich den Login auf 5 falsche Eingaben zu begrenzen und danach der IP 15 Minuten lang den Login zu verbieten
Mein bisheriger Ansatz sieht so aus:
Also ich trage jeden fehlgeschlagenen Login in der Datenbank ein (siehe Spoiler) und überprüfe dann hiermit ob dort 5 oder mehr Einträge für diese IP vorliegen.
Könnt ihr mir eventuell weiterhelfen? Ich find leider den Fehler nicht :/
Immer wenn ich ganz oft mich absichtlich falsch anmelde um das auszuprobieren, lande ich immer nur bei dem Hinweis das der Login fehlgeschlagen ist aber nie bei der Sperrung :/
Danke schonmal im Vorraus, MCStreetguy

Ich bastel im Moment an einer Internetseite

Grade versuche ich den Login auf 5 falsche Eingaben zu begrenzen und danach der IP 15 Minuten lang den Login zu verbieten

Mein bisheriger Ansatz sieht so aus:
PHP:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$searchforfailure = "SELECT * FROM `failed_logins` WHERE `ip`='".$ip."'";
$res = mysql_query($searchforfailure, $dblink);
if(mysql_num_rows($res)>= 5) {
while($fail = mysql_fetch_object($res)) { $timestamp = $fail->ts_int; }
if($timestamp+900 > time()) {
header('Location: index.php?login=2');
} else {
$res = mysql_query($searchforfailure, $dblink);
while($fail = mysql_fetch_object($res)) {
$delete = "DELETE FROM `failed_logins` WHERE `id`='".$fail->id."'";
mysql_query($delete, $dblink);
}
}
}
Also ich trage jeden fehlgeschlagenen Login in der Datenbank ein (siehe Spoiler) und überprüfe dann hiermit ob dort 5 oder mehr Einträge für diese IP vorliegen.
PHP:
..... } else {
$id = time();
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$account = $username;
$insertfailure = "INSERT INTO `failed_logins` (`id`, `ip`, `ts_int`, `timestamp`, `affected_account`) VALUES ('".$id."','".$ip."','".time()."',NOW(),'".$account."')";
mysql_query($insertfailure, $dblink);
header('Location: index.php?login=1');
}
Könnt ihr mir eventuell weiterhelfen? Ich find leider den Fehler nicht :/
Immer wenn ich ganz oft mich absichtlich falsch anmelde um das auszuprobieren, lande ich immer nur bei dem Hinweis das der Login fehlgeschlagen ist aber nie bei der Sperrung :/
Danke schonmal im Vorraus, MCStreetguy