Heute möchte ich einmal eine Serie starten und zwar eine Schritt für Schritt Anleitung, wie man ein einfaches Usertracking mit PHP erstellt. Ich muss gleich dazu sagen, ich habe noch nie so etwas programmiert, aber genau deshalb möchte ich es auch machen. Ich lerne selber auch sicherlich noch das eine oder andere und kann euch viele wichtige Tipps geben.
Ziele
Mein Ziel ist es einfach alle Besucher zu loggen mit IP-Adresse, Betriebssystem, Browser sowie die Seite von der sie kommen. Eventuell möchte ich auch noch eine einfache Boterkennung anhand der IP-Adresse einbauen. Außerdem würde mich noch eine schönes Userinterface zur Auswertung der Daten gefallen, aber ich habe noch nie etwas grafisches mit PHP gemacht, deshalb kann ich für dieses noch keine Garantie geben.
Usertracking mit PHP Teil 1 – Einfaches Loggen der IP-Adresse
Wir lesen einfach die IP-Adresse des Besuchers aus und speichern diese mit der aktuellen Zeit in einer Logdatei. Später können wir diese Logdatei natürlich mit einer Datenbank ersetzten, um eine bessere Ãœbersicht und Sicherheit zu haben, aber für den Anfang wird diese noch nicht benötigt. Ich habe hierfür drei Funktionen erstellt und werde sie weiter unten genauer beschreiben.
Quellcode:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $file="besucher.log"; logVisitor(); readData(); function logVisitor(){ Â Â Â $ip = $_SERVER['REMOTE_ADDR']; Â Â Â $time = time(); Â Â Â writeData($ip." - ".date("d.m.Y, H:i:s",$time)." - ".$time."\n<br />"); } function writeData($string){ Â Â Â global $file; Â Â Â $handle=fopen($file,"a"); Â Â Â fwrite($handle, $string); Â Â Â fclose($handle); } function readData(){ Â Â Â global $file; Â Â Â $handle=fopen($file,"r"); Â Â Â $stats = fread($handle, filesize($file)); Â Â Â return $stats; } ?> |
logVisitor()
In dieser Funktion wird einfach die IP-Adresse ausgelesen und mit der aktuellen Zeit an eine andere Funktion als String übergeben.
writeData()
Hier wird einfach nur das Schreiben der übergebenen Informationen in der Datei abgehandelt. Das verwenden so einer Funktion ist vor allem Sinnvoll, weil wir später einfach in eine Datenbank schreiben können und nur an einer Stelle den Code ändern müssen. Wir schreiben übrigens die Zeit zweimal in die Logdatei, weil wir sie einmal formatiert haben möchten und einmal einfach nur den Timestamp.
readData()
Hier gilt das Selbe wie bei writeData(), nur dass hier die Daten ausgelesen werden und nicht gespeichert. Später leicht durch ein Lesen aus einer Datenbank zu ersetzten.
Aufruf der Funktionen
Jetzt muss man nur noch die einzelnen Funktionen aufrufen und man kann die Daten der Besucher speichern und ausgeben. Durch die Verwendung von Funktionen haben wir die Möglichkeit, unser Skript leicht zu erweitern. Außerdem ist es durch die Funktionen um einiges übersichtlicher.Das war auch schon der 1. Teil und somit die Basis für unser kleines Skript.
Wieso benutzt Du nicht Google Analytics?
Trotzdem sehr interessant.
Ich benutze Analytics, aber es ist auch sehr interessant einmal selber so eine Trackingsoftware zu schreiben. Wenn man die wichtigsten Funktionen selber implementiert hat, kann man das auch für eigene kleinere Projekte einsetzten und sicherstellen, dass keine Daten bei anderen Firmen landen.