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 {
Einen Kommentar schreiben: