[PHP] Seitenstatistik

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Hi Leute,

ne ganz kurze Frage: Wie speichere ich am besten die statistischen Daten eines Benutzers ab, der meine HP besucht?

Abgespeichert werden müssen:
  • Browser
  • OS
  • Besuchstag
  • Besuchsstunde

Bei Google lässt sich kein anständiges Beispielscript oder eine Anleitung finden!

Ich Hoffe auf eure Hilfe,
CPU
 
Auslesen kannste die daten so :

PHP:
<?php
echo "Remote-Adress: ".getenv("REMOTE_ADDR");
echo "<br>";
echo "User-Agent: ".getenv("HTTP_USER_AGENT");
?>

Ich würde die dann in eine Datenbank packen und durch ein weiteres Skript auswerten lassen.
 
Für das Auslesen habe ich schon ein Skript geschrieben!
Soll ich nun die Angaben in die Datenbank packen oder in eine Datei?
Soll ich außerdem jeden einzelnen Besucher (sofern dieser in den letzten Paar Stunden nicht "gevoted" hat) in die DB/txt-Datei eintragen, oder einen Wert immer wieder um 1 erhöhen?

CPU

P.S.: Ist es schlimm, wenn mein Statistik Skript etwa 300 Zeilen lang ist? Ich mein so vom traffic und CPU verbrauch?
 
Ich persönlich würde eine Datenbanktabelle vorziehen.
Außerdem würde ich jeden einzelnen Benutzer eintragen.


Ist es schlimm, wenn mein Statistik Skript etwa 300 Zeilen lang ist? Ich mein so vom traffic und CPU verbrauch?


Das kann man so nicht sagen. Ich kann in einer 10-Zeilen-Datei Code schreiben, an dem PHP 5 minuten rechnet (bzw. nach 60 sec. abbricht ;) )
Ebenso kann ich ein 2000-Zeilen Skript schreiben, dass in null komma irgendwas sekunden ausgeführt wird.

300 Zeilen sagen gar nichts. Es kommt auf den Code der in diesen Zeilen drinsteht drauf an.
Aber zu groß ist die Datei auf keinen Fall. 300 Zeilen sind eigentlich relativ wenig.
 
300 Zeilen sagen gar nichts. Es kommt auf den Code der in diesen Zeilen drinsteht drauf an.
Aber zu groß ist die Datei auf keinen Fall. 300 Zeilen sind eigentlich relativ wenig.

Da stimm ich mal zu, denn hier spielt die Länge ne untergeordnete Rolle :evillol:

Ich würde eine Datenbank nehmen, Textdateien werden schnell zu groß und lohnen sich nur bei kleinen Seiten. Zudem muss die Datei immer wieder neu geschrieben/gelesen werden usw. das dauert länger als eine SQL-Abfrage zu starten. (Sonst hätten die Datenbanken wohl auch ihre Daseins-Berechtigung verloren)
 
Also Datenbank, jeden einzelnen Besucher einzeln eintragen oder einen Wert immer um 1 erhöhen?

Zum Inhalt der Datei:
PHP:
<?php
 if($bla = "MSIE") {
  $a = "MSIE";
 }
....
?>
Ziemlich viele if-Abfragen.

Aber wichtig wäre mir, wie ich nun die Daten in die Datenbank verfrachte! Mit dem dem Verfahren, jeden einzel einzutragen, wäre der Skriptaufwand sehr gering!
Man bräuchte nur folgende Spalten:
Code:
browser|os|tag|stunde|ip|id
Aber wenn ich einen Wert erhöhe, wie soll ich denn da vorgehen?
Derzeit frage ich in einer Serie die "Benutzerdaten" ab und danach frage ich ab was auf der Variable gespeichert ist und stelle dann einen String zusammen.
Bei 10 verschiedenen Betriebssystem, 10 verschiedenen Browsertypen, 7 verschiedenen Tagen und 8 verschiedenen Zeitzonen wird das schon eine ganze menge Code.

Also meint Ihr, dass wenn ich jeden Besucher einzeln eintrage, wird die Datenbank nicht zu voll?

CPU:)
 
Also meint Ihr, dass wenn ich jeden Besucher einzeln eintrage, wird die Datenbank nicht zu voll?

Nee nee, so ne Datenbank verträgt wesentlich mehr als viele denken. Selbst mit einer Million Datensätzen kommt MySQL locker aus, wenn man die Tabelle entsprechend plant (d.h. Indexe usw.)

Aber du brauchst eigentlich gar nicht mal so viele, bspw. könntest du jeden Monat die Tabelle auswerten und danach kannste die Datensätze ja löschen.
 
Du kannst auch zum Beispiel eine Tabelle für verschiedene Browser anlegen und darin den Wert jeweils um eins inkrementieren (um eins erhöhen) alllerdings iwrd das bei der Zeit schwieriger. Da solltest du die nur Stunden auswerten un dabei den Wert um eins erhöhen. Dann hast du die Anzahl der User die meinetwegen deine Seite zwischen 10 und 11 Uhr besucht haben.
 
Hi,

weil ich mal wissen wollte, wie andere mit solchen "Statistik problemen" fertig werden, hab ich einfach mal Joomla! installiert und hingeschaut.
Die Statistik, grafische Oberfläche, sieht's so aus:

joomla_statistiks.png


Wie ich beim ersten Blick in PHPMyAdmin sehen konnte, speichert Joomla die Browserspezifischen Daten ab und erhöht einen Wert immer um 1!

Wie das genau funktioniert, konnte ich jedoch bislang nicht herausfinden!

CPU:p
 
Das wirst du auch nich in PHPMyAdmin finden, sondern nur im Quellcode des entsprechenden Joomla-Modul. Allerdings gibts für Joomla auch wesentlich bessere Stats-Module und Bots, die auch wesentlich mehr Möglichkeiten offenbaren als das Std-Modul.
 
Zurück
Oben