| |
| * Link führt ins Internet |
|
| |
Erzeugen von eigenen Logfiles
|
|
Mit Hilfe der Servervariablen lassen sich auf einfache Weise auch eigene Logfiles erzeugen. Üblicherweise sind die meisten Webserver so eingestellt, dass solche Logfiles automatisch angelegt werden. Sie als Entwickler haben jedoch nicht bei jedem Provider einen direkte Zugriff auf diese Logfiles.
In diesem Fall kann Ihnen PHP behilflich sein, in dem Sie Ihre eigenen Logfiles anlegen. Sie werden natürlich nicht sämtliche Servervariablen in Ihr Logfile aufnehmen müssen. Es empfiehlt sich folgende Servervariablen zu erfassen:
. $REMOTE_ADDR
. $REQUEST_METHOD
. $PHP_SELF
. $HTTP_USER_AGENT
. $HTTP_REFERER
Zusätzlich sollten Sie noch mit Hilfe der date() und time()-Funktion das Datum und die Uhrzeit des Aufrufs erfassen.
Sie sollten sich nun den benötigten Codezeilen zuwenden und folgendes Skript in die Datei logfile.php übertragen:
<?php
$logdatei=fopen("logs/logfile.txt","a");
fputs($logdatei,
date("d.m.Y, H:i:s",time()) .
", " . $REMOTE_ADDR .
", " . $REQUEST_METHOD .
", " . $PHP_SELF .
", " . $HTTP_USER_AGENT .
", " . $HTTP_REFERER ."\n"
);
fclose($logdatei);
?>
|
Wie Sie sehen werden die Serverdaten in die Datei logfile.txt im Verzeichnis logs gespeichert. Sie müssen lediglich dafür sorgen, dass das Verzeichnis existiert und die entsprechenden Zugriffsrechte gesetzt wurden um eine Datei zu erzeugen.
Mit Hilfe der Funktion fopen() wird die Datei geöffnet und in den entsprechenden Modus versetzt (a = append, hinzufügen). In dieser geöffneten Datei wird nun mit Hilfe von fputs() eine Zeichenfolge geschrieben, die das aktuelle Datum und die aktuelle Uhrzeit enthält, gefolgt von der IP-Adresse des Client-Rechners, anschliessend die Art der Anfrage, der Name des aufgerufenen Skripts, Informationen über den Browser und die Seite, welche der Browser vorher besucht hat. Was Sie nicht vergessen sollten ist noch ein Zeilenvorschub hinzuzufügen \n, damit gewährleistet werden kann das jeder Aufruf in einer eigenen Zeile angelegt wird. Die Einträge der einzelne Aufrufe werden jeweils durch ein Komma voneinander getrennt, sodass die Daten auch leicht in Programme, wie Access oder Excel eingelesen werden können.
Am Ende des Skripts wird noch dafür gesorgt, dass die Datei mit Hilfe von fclose() wieder geschlossen wird.
| Hinweis: Nähere Informationen zu fopen(), fclose(), etc. erfahren Sie im Abschnitt Dateisystem via PHP. |
Einsatz der logfile.php
Um für jede Seite Ihrer Website die logfile.php automatisch mit aufrufen zu lassen und somit einsetzen zu können, bietet es sich an, die Datei im Header einer jeden Seite mit Hilfe einer include()-Anweisung einzubinden.
Beispiel
<?php
include("logfile.php");
?>
|
Dies führt dazu, dass bei jedem Seitenaufruf eine neue Zeile in der Datei logfile.txt mit den entsprechenden Daten erzeugt wird.
Diese Daten können Sie nun mit nach belieben mit anderer Software bearbeiten. Sie können auch wahlweise zusätzliche Servervariablen hinzufügen und damit die Aussagekraft ihrer Logfiles erweitern.
|
|
|
|
|
|
|