Ich würde gerne für ein Login-Verfahren eine IP-Sperre nach 3 Fehlversuchen machen. Dass nach 3 Fehlversuchen etwas passiert hab ich schon. Nur leider verstehen ich nicht wie ich es machen soll, dass er eine IP-Sperre macht die für beispielsweise 15 Minuten anhält und dann automatisch aufgelöst wird.
Ich hab schon rumgespielt, finde aber keine richtige Lösung.
Habt ihr irgendwelche Ideen, Codeschnipsel etc. um mein Problem zu Lösen?
Hier mein bisheriger Code-Versuch:
Die Funktion:
Der eigentliche Inhalt:
Dankeee!
Ich hab schon rumgespielt, finde aber keine richtige Lösung.

Habt ihr irgendwelche Ideen, Codeschnipsel etc. um mein Problem zu Lösen?
Hier mein bisheriger Code-Versuch:
Die Funktion:
PHP-Code:
function ReloadSperre()
{
// Dauer der Sperre in Sekunden
$sperrZeit = 15; // 3600 = 1 Stunde
$dateiname = "reload.txt";
// Zeit bis Sperre abgelaufen
$reloadZeit = 0;
// IP-Adresse
$ip = $_SERVER['REMOTE_ADDR'];
// aktuelle Zeit
$zeit = time();
$datei = file($dateiname);
// Datei durchlaufen und auf Sperren prüfen
for($i = 0; $i < sizeof($datei); $i++)
{
$eintrag = explode("|", $datei[$i]);
// Sperre aktiv?
if($eintrag[0] > $zeit - $sperrZeit)
{
// gleiche IP?
if(trim($eintrag[1]) == $ip)
{
// Restdauer der Sperre berechnen
$reloadZeit = $sperrZeit - ($zeit - $eintrag[0]);
}
// Zeile wieder dem Dateiinhalt hinzufügen
$neuerInhalt .= $datei[$i];
}
}
// Keine Sperre => neuen Eintrag erzeugen
if($reloadZeit == 0)
$neuerInhalt .= $zeit."|".$ip."\n";
// Daten in Datei speichern
$handle = fopen($dateiname, "w");
fwrite($handle, $neuerInhalt);
fclose($handle);
$handle2 = fopen($datei, "w");
fwrite($handle2, $startwert);
fclose($handle2);
// Restzeit zurückgeben
return $reloadZeit;
}
PHP-Code:
$reload = ReloadSperre();
if($reload > 0) {
echo "Du musst noch ".sprintf("%02d:%02d:%02d",
$reload / 60 / 60, ($reload / 60) % 60, $reload % 60)." warten, bis du dich erneut einloggen kannst.";
} else {

Kommentar