Counter wird seltsamerweise nicht erhöht

mkoeni1

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Problem und benötige Eure Hilfe. Auf einer Seite habe ich 2 Funktionen die einen Counter erhöhen und die eine IP sperren für eine bestimmte Zeit.
PHP:
function checkIP($ip)
{
    // Zeit in Minuten fuer die IP Sperre
    $iTime = 5;
    // IP Datei oeffnen
    $hfp = file('ip.txt');
    // Anzahl Zeilen fuer die Schleife
    $iLines = sizeof($hfp);
    $timestamp = time();
    // Neue Datei die am Schluss geschrieben wird
    $strNewIPFile = '';
    for($i=0;$i<$iLines;$i++)
{
        // Die Zeile anhand des Trennzeichens ';' splitten
        $rgSplited = explode(";",$hfp[$i]);
        // Wurde das Zeitlimit ueberschritten
        if(($rgSplited[1]+ 60*$iTime) > $timestamp)
{
            // die Zeile, die uns sagt, dass diese Zeit noch nicht 
            // aelter als $iTime ist in die neue Datei schreiben
            $strNewIPFile .= $rgSplited[0].';'.$rgSplited[1]."\n";
            if($rgSplited[0] == $ip)
{
                //Check ob die Zeit fuer die IP verstrichen ist
                // Fehlermeldung ausgeben
                echo $count;
                exit;        
}
}        
}
    // Die aktuelle IP schreiben in die Datei
    $newIPFile .= $ip.';'.$timestamp."\n";
    // Datei neu schreiben
    $hFile = fopen('ip.txt', 'w');
    fwrite($hFile, $newIPFile, 1024);
} // end of checkIP()




// Diese Funktion nehme ich her, ob z.B. bei Downloads her, 
// um den Traffic zu regulieren
function checkTime()
{
    // Zeit in Minuten fuer die Zeitsperre
    $iTime = 5;
    $hfp=file('time.txt');
    $timestamp=time();
    $strNewFile = '';
    if(($hfp[0]+(60*$iTime)) > $timestamp)  
{
        echo "";
        return false;
} 
//  fclose($hfp);
   $strNewFile=$timestamp;
   $hFile = fopen('time.txt', 'w');
   fwrite($hFile, $strNewFile, 256); 
   return true;       
} // end of checkTime() 

###############################################



// Datei index.php
//include('api.php');
// IP Adresse ermitteln         
$strIP = $_SERVER['REMOTE_ADDR'];
// IP Sperrenaufruf 
checkIP($strIP);

$count = 12;
// Zeitsperrenaufruf
if(checkTime() == true)
{
  $count = $count + 1 ;
  echo $count;
}
else {
  echo $count;
}

Es muss doch möglich sein, wenn dieFunktion checkTime() false zurückgibt, dass dann der else Teil ausgeführt wird, oder?

Ich sehe den Fehler vor lauter Bäumen nicht.
Kann mir jemand helfen?

Vielen Dank und Gruß
Matze
 
Lass dir doch mal ausgeben, was ($hfp[0]+(60*$iTime)) als Ausgabe gibt und schau dann von Auge, obs grösser ist als der momentane Timestamp. Ist in $hfp[0] überhaupt ein Wert drin, der addiert werden kann?
 
ja, in $hfp[0] +(60*$iTime) steht aktuell der Wert. Das müsste die erste Zeile sein der Text-Datei:
Code:
42742712

und in $hfp[0] steht:
Code:
127.0.0.1;1191409596 127.0.0.1;1191409596 12

Ich muss mir die explode(";",$hfp[$i]); und den Wert von $timestamp; nochmal anschauen.

Danke und Gruß
Matze
 
Zurück