1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
<?php
function ReloadSperre()
{
// Dauer der Sperre in Sekunden
$sperrZeit = 3600; // 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);
// Restzeit zurückgeben
return $reloadZeit;
}
// Beispielaufruf
$reload = ReloadSperre();
if($reload > 0)
echo "Reloadsperre noch ".sprintf("%02d:%02d:%02d",
$reload / 60 / 60, ($reload / 60) % 60, $reload % 60)." aktiv";
else
echo "Keine Reloadsperre";
?>
|