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.
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
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