tash: Counter mit IP-Sperre

Beitrag lesen

Hallo!

Ich bin zur Zeit am Bauen eines Besucherzählers für eine Webseite. Dieser soll mit einer IP-Sperre funktionieren.
Bei einem Zugriff auf die Seite werden Zeit+IP-Adresse des Besuchers in die Datei "ip_new.txt" und der Zähler wird in die Datei "counter.txt" eingetragen. Nach dem Ablauf des zeitlichen Limits für die IP-Sperre wird der jeweilige Besucher wieder als neuer Besucher gezählt.

Nun habe ich folgenden Script zusammengebastelt:

<?php

$ipdatei = "ip_new.txt";
$zaehlerdatei = "counter.txt";
$zeitlimit = 10;

$ipliste = file($ipdatei);

foreach($ipliste as $zeile){
 $trennung = explode("|", $zeile);
}

if((time()>($trennung[0]+$zeitlimit))&&(trim($trennung[1]."\n")==($_SERVER['REMOTE_ADDR']))){

$FilePointerIP = fopen($ipdatei, "a+");

fwrite($FilePointerIP, time()."|".$_SERVER['REMOTE_ADDR']."\n");

fclose($FilePointerIP);

$datei= fopen("counter.txt", "r+");

$dateigroesse=filesize("counter.txt");

$counter=fread($datei, $dateigroesse);

fclose($datei);

$counter++;

echo"Sie sind der ".$counter.". Besucher auf der Seite. ";

$datei=fopen($zaehlerdatei,"w");

$output=fwrite($datei, $counter);
        fclose($datei);

echo "Schön dass Sie wieder da sind!";
 }

elseif((time()<($trennung[0]+$zeitlimit))&&(trim($trennung[1]."\n")==($_SERVER['REMOTE_ADDR']))){
  echo "Die Besucherzahl wird jetzt nicht erhöht, Sie waren schon heute da...";
 }

else{
        $FilePointerIP = fopen($ipdatei, "a+");

fwrite($FilePointerIP, time()."|".$_SERVER['REMOTE_ADDR']."\n");

fclose($FilePointerIP);

echo"Hallo! Sie sind das 1.Mal hier, nicht wahr?";

$datei= fopen($zaehlerdatei, "r+");

$dateigroesse=filesize($zaehlerdatei);

$counter=fread($datei, $dateigroesse);

fclose($datei);

$counter++;

echo"Sie sind der ".$counter.". Besucher auf der Seite. ";

$datei=fopen($zaehlerdatei,"w");

$output=fwrite($datei, $counter);

fclose($datei);
 }
?>

  1. Es wird immer auf den letzten Eintrag in der IP-Datei zugegriffen, die ganze Liste wird nicht durchgesucht. Wie ändere ich mein Script, damit es funktioniert?
  2. Außerdem wäre es schön, wenn die Einträge in dieser IP-Datei auch aktualisiert werden könnten (also keine Einträge mit gleicher IP und ungleicher Zeit). Wie geht das?
  3. Wie mache ich eine "Auffrischung" der IP-Datei, so dass zu einem bestimmten Zeitpunkt alle Einträge dieser Datei gelöscht werden?

Hoffentlich kann mir jemand von Euch helfen, ich komme einfach nicht mehr weiter :(

Schreibt bitte möglichst einfach, ich bin noch eine Anfängerin in PHP ;)

Vielen-vielen Dank im Voraus!!!

lg tash