Zum Inhalt springen


PHPWelt.net Blog - Ein weiteres tolles WordPress-Blog


Counter mit IP-Sperre

1. Counter? Wozu?
Ein Counter ist lediglich dazu da, die Besucher zu zählen. Allerdings besteht dabei das Problem, dass ein Besucher der die Seite mehrmals hintereinander besucht auch mehrmals gezählt wird und somit den Counterstand verfälscht. Dieses Problem wird durch eine simple IP Sperre gelöst.

2. Was brauche ich?
Um den Counter nutzen zu können benötigt man erstens Webspace der PHP unterstützt.Außerdem werden noch 2 gewähnliche Textdateien benötigt. Die ip.txt und die counter.txt. Diese beiden Dateien müssen sich in dem Ordner befinden, wo auch die php-Datei mit dem Script ist. Des weiteren muss man die Textdateien im CHMOD 777 hochladen.

3. Script

Hier nun das Script für den Counter:

<?php
$counter = "counter.txt";
$ip  = "ip.txt";

Den Variablen und $ipfile werden die Werte counter.txt und ip.txt zugeordnet.

if (file_exists($counter) && file_exists($ip)){

Wenn die Datei counter.txt und ip.txt existieren, dann….

/* alter Counterstand wird gelesen */
   $fp = fopen($counter,"r");
   $zahl = fgets($fp,10);
   fclose($fp);

… wird der Inhalt der Datei counter.txt gelesen und als Wert für die Variable $counter festgelegt….

/* IP des letzten Zugriffs wird gelesen */
   $fp = fopen($ip,"r");
   $ip_adresse = fgets($fp,15);
   fclose($fp);

… wird der Inhalt der Datei ip.txt gelesen und als Wert für die Variable $ip festgelegt….

}else {
    $zahl = 0;

Falls die Dateien nicht existieren, wird für die Variable $counter der Wert 0 festgelegt.

}

if ($ip_adresse == $REMOTE_ADDR) {echo "$zahl";}
 
if ($ip_adresse <> $REMOTE_ADDR) {

Wenn die IP des Benutzers nicht mit der IP in der Datei übereinstimmt,…

/* Zahl erhöhen */
      $zahl = $zahl + 1;

…wird die Variable $counter (der Counterstand) um 1 erhöht…

echo "$zahl";

…und wiedergegeben.

/* neuen Counterstand schreiben */
      $fp = fopen($counter,"w");
      flock($fp,2);
      fputs($fp,$zahl);
      flock($fp,3);
      fclose($fp);

Dann wird der neue Counterstand in die Datei counter.txt geschrieben…

/* neue IP schreiben */
      $fp = fopen($ip,"w");
      flock($fp,2);
      fputs($fp,$REMOTE_ADDR);
      flock($fp,3);
      fclose($fp);

…und die IP des Benutzers in die Datei ip.txt geschrieben

}
?>

 – Robots.txt und Ihre Befehle für Suchmaschinen »

Info:
Counter mit IP-Sperre ist Beitrag Nr. 23
Author:
Erik am 13. Februar 2008 um 23:20
Kategorie:
PHP |
Tags:
,  
Trackback:
Trackback URI

Keine Kommentare »

Noch keine Kommentare.

Kommentar-RSS: RSS-Feed für Kommentare zu diesem Artikel.

Einen Kommentar hinterlassen