Script für Besucherstatistik gefunden

Html

Erfahrenes Mitglied
Hallo, war auf der Suche nach einem Script für eine Besucherstatistik. Bin hier im Forum fündig geworden und habe folgenden Code gefunden:

PHP:
<?php
// wie lange gilt wird eine ip nicht als neuer besucher gewertet (in minuten)
$t_counter=120;
// wie lange gilt besucher als online (in minuten)
$t_user_online=5;
// pfad zum besucherzaehler
$p_counter='counter.log';
// pfad zur datei, die maximale zahl gleichzeitiger nutzer speichert
$p_counter_max='counter_max.log';
// pfad zur datei, die die ips des besucherzaehlers speichert
$p_ips_counter='ips_counter.log';
// pfad zur datei, die die ips der aktuell auf der seite befindlichen user speichert
$p_ips_user_online='ips_user_online.log';

// nicht vorhandene dateien erstellen
// wenn dateien vorhanden sind und skript einwandfrei laeuft, dann diese zeilen auskommentieren (// davor)
if (!file_exists($p_counter))
{ $fh=fopen($p_counter, 'w'); fwrite($fh, "0"); fclose($fh); }
if (!file_exists($p_counter_max))
{ $fh=fopen($p_counter_max, 'w'); fwrite($fh, time().'#0'); fclose($fh); }
if (!file_exists($p_ips_counter))
{ $fh=fopen($p_ips_counter, 'w'); fclose($fh); }
if (!file_exists($p_ips_user_online))
{ $fh=fopen($p_ips_user_online, 'w'); fclose($fh); }

// daten einlesen
$temp=file($p_counter); $counter=$temp[0];
$temp=file($p_counter_max); $counter_max=explode('#', $temp[0]);
$ips_counter=file($p_ips_counter);
$ips_user_online=file($p_ips_user_online);
$ip=$_SERVER['REMOTE_ADDR'];

// user online - noch gueltige ips raussuchen
$i=0; $j=0; $ip_exists=0;
while ($i < count($ips_user_online))
{
$temp=explode('#', trim($ips_user_online[$i]));
if (time() < $temp[0]+$t_user_online*60)
{
$ips[$j]=$ips_user_online[$i]; $j++;
// wenn ip des aktuellen besuchers gefunden, dann vermerken
if ($temp[1]==$ip) { $ip_exists=1; }
}
$i++;
}
// wenn aktuelle ip nicht gefunden wurde ($ip_exists==0) oder alle entsorgt wurden, dann diese hinzufuegen
if (!isset($ips) && $ip_exists==1 || $ip_exists==0)
{ $ips[$i]=time().'#'.$ip; }
// anzahl felder von $ips entspricht anzahl der user online
$user_online=count($ips);
// wenn aktuelle zahl besucher groesser als letztes maximum, dann ueberschreiben und neu einlesen
if ($user_online>$counter_max[1])
{
$fh=fopen($p_counter_max, 'w');
fwrite($fh, time().'#'.$user_online);
fclose($fh);
$temp=file($p_counter_max); $counter_max=explode('#', $temp[0]);
}
// die ips speichern
$fh=fopen($p_ips_user_online, 'w');
fwrite($fh, join("\n", $ips));
fclose($fh);

// besucherzaehler - noch gueltige ips raussuchen
$i=0; $j=0; $ip_exists=0;
while ($i < count($ips_counter))
{
$temp=explode('#', trim($ips_counter[$i]));
if (time() < $temp[0]+$t_counter*60)
{
$ips[$j]=$ips_counter[$i]; $j++;
// wenn ip des aktuellen besuchers gefunden, dann vermerken
if ($temp[1]==$ip) { $ip_exists=1; }
}
$i++;
}
// wenn aktuelle ip nicht gefunden wurde ($ip_exists==0) oder alle entsorgt wurden, dann diese hinzufuegen
if (!isset($ips) && $ip_exists==1 || $ip_exists==0)
{
$ips[$i]=time().'#'.$ip;
$counter++;
$fh=fopen($p_counter, 'w');
fwrite($fh, $counter);
fclose($fh);
}
// die ips speichern
$fh=fopen($p_ips_counter, 'w');
fwrite($fh, join("\n", $ips));
fclose($fh);

// ausgabe der besucherdaten
echo 'Es sind '.$user_online.' Nutzer online.<br>';
echo 'Seit dem 22. Mai 2003 waren '.$counter.' Besucher auf dieser Seite.<br>';
echo 'Größte Zahl gleichzeitiger Besucher war am '.date("d.m.Y", $counter_max[0]).' mit '.$counter_max[1].' Besuchern.';
?>

Nun, wollte ich einfach eure Meinung zu diesem Script hören ob es was taugt oder nicht-oder ob es was besseres gibt? Also klappen tut es auf jedenfall-das habe ich ausprobiert.

mfg,Olli
 
Ein einfaches Counterscript, Dateibasierend... Was soll man dazu noch groß sagen? ;-)

Natürlich geht es immer ein wenig größer, z. B. könntest du auf AWStats zurückgreifen, was eine vollständige Statistik inkl. Grafiken anhand der LogFiles erstellt... Gibt noch einige andere Pendants, vielleicht einfach mal googlen.
 
Zurück