$count = "angeboteclicks.txt"; //der relative Pfad von der Seite, wo du es einsetzt, bis zur Datei clicks/clicks.txt
$ipdatei = "ip.txt"; //relativer Pfad von der Seite, wo du es einsetzt, bis zur ip.txt
$dauer = 3; //Minuten, die eine IP beim Counter gesperrt wird
//und hier gehts dann auch schon los
$countnew = $count;
$aktIP = $_SERVER['REMOTE_ADDR']; //IP abfragen
checkip($aktIP); //Aufruf Funktion checkip
//hier kommt die Funktion zum IP-Check
function checkip($ip)
{
global $dauer,$ipdatei;
$exists = FALSE;
$timestamp = time();
$file = file($ipdatei);
$ipdatei = fopen($ipdatei,"w+");
foreach ($file as $line)
{
$exp_line = explode("|", $line);
if ($exp_line[0] == $ip) //wenn die Zeile der Schleife die IP beinhaltet
{
$exists = TRUE; //hier wird der marker auf true gesetzt, da die IP schon vorkommt
if(($exp_line[1]+ 60*$dauer) < $timestamp) // IP ist nicht mehr gesperrt
{
fputs($ipdatei, "$exp_line[0]|$timestamp\n"); //neue Daten für diese IP werden geschrieben...
zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
}
else //IP ist noch gesperrt
{
fputs($ipdatei, "$line");
}
}
else //wenn die Zeile der Schleife die IP nicht beinhaltet...
{
if(($exp_line[1]+ 60*$dauer) > $timestamp) //und noch eine Sperre für diese Zeile existiert...
{
fputs($ipdatei, "$line"); //wird sie nochmal gleich reingeschrieben, ansonsten wird sie gelöscht!
}
}
}
if ($exists == FALSE) //hier wird der oben gesetzte Marker abgefragt, wenn er nicht auf TRUE ist, ist die IP neu und wird eingefügt
{
fputs($ipdatei, "$ip|$timestamp\n"); //neue Zeile für neue IP wird geschrieben
zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
}
fclose($ipdatei);
statis();
}
//Funktion zum Zählen der clicks
function zaehlen()
{
global $count;
$date = date("d.m.y.");
$tstamp = mktime(0, 0, 0, date("m"), date("d")-1, date("y")); //der gestrige Tag wird erzeugt
$gestern = date("d.m.y.", $tstamp);
$time = date("H:i:s");
$counttemp = fopen($count,"r");
$inhalt = fgets($counttemp, 1000);
list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern) = explode("|",$inhalt);
$ctotalold++;
$ctotal = $ctotalold;
if ($dateold == $date)
{
$hits++;
}
elseif ($dateold == $gestern)
{
$dategestern = $dateold;
$hitsgestern = $hits;
$hits = 1;
}
else
{
$hits = 1;
$dategestern = $gestern;
$hitsgestern = 0;
}
$new_line = "$ctotal|$date|$hits|$dategestern|$hitsgestern";
fclose ($counttemp);
$count = fopen($count,"w+");
fputs ($count,$new_line);
fclose ($count);
}
//Clickstatfunktion zur Anzeige auf der Seite
function statis()
{
global $countnew,$dauer;
$countnew = fopen($countnew,"r");
$inhalt = fgets($countnew, 1000);
list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern) = explode("|",$inhalt);
echo "counterstatistik";
echo "heute: $hits Zugriffe ";
echo "gestern: $hitsgestern Zugriffe ";
echo "total: $ctotalold Zugriffe ";
echo "$dauer Minuten IP-Block";
fclose ($countnew);
}
?>