Vor längerer Zeit hatte ich mal ein Problem mit einem Besucherzähler.
PHP-Fan hat mir sehr geholfen und ich habe dann seine Ausarbeitung noch ein wenig optimiert:
Code
$ip = $_SERVER['REMOTE_ADDR'];
$filename = "ort.txt";
$new_data = array();
if (file_exists($filename))
{
$data = file($filename);
$new_data = array();
$ip_found = false;
for ($i = 0; $i < count($data); $i++)
{
$line = $data[$i];
$values = explode("|", $line);
if($values[1] < time() - 1800)
{
continue;
}
if ($values[0] == $ip)
{
$ip_found = true;
$values[1]= time();
$values[3] = trim($values[3]);
$values[3]++;
$values[3] .= "\n";
$line = implode("|", $values);
}
$new_data[$i] = $line;
}
$fp = fopen($filename, "w");
$newfile ="";
for($i = 0; $i < count($data); $i++)
$newfile .= $new_data[$i];
if (! $ip_found)
{
$newfile .= "\n".$ip . "|" . time() . "|" . time() . "|" . "1";
}
if ($fp)
{
fputs ($fp,$newfile);
fclose($fp);
}
else
echo "Datei konnte nicht zum Schreiben ge�ffnet werden";
}
else
echo "datei existiert nicht";
Alles anzeigen
Das müsste in jede Seite.
Eine Zeile in der Datei (die in einem geschützten Berich liegen sollte) sieht so aus:
IP|Uhrzeit des letzten Klicks|Uhrzeit zu Beginn des Besuches|Zahl der geladenen Seiten
Ist der letzte Besuch mehr als 30 Minuten her, zählt es als neuer Besuch.
Diesen Zähler kann man schön auswerten:
Anzahl der Zeilen: Anzahl der Besuche
Summe des letzten Teils in einer Zeile: Wie oft wurde etwas geladen
Und man hat halt auch eben die Uhrzeiten.
Viele liebe Grüße
The User