Hallo!
Ich möchte gerna auf meiner neuen HP eine Statistikanzeige einbauen, die mittels einer graphischen Darstellung die verwendeten Browser anzeigt. Die browserbestimmiung hab ich schon zusammen.
Die graphische Auswertung stelle ich mir überlegungstechnisch so vor:
In einer Text-Datei gibt es für jeden Browser eine Zeile. Darin steht die Anzahl (z.B. MSIE 6.0 | 87)
Jetzt müsste man zur Darstellung einen Balken erstellen der 100/87 lang ist. Dazu wollte ich eine Grafik verwenden, deren Abmaße z.b. 15xLänge ist.
Jetzt komme ich bei 2 Sachen nicht weiter:
1. Wie kekomme ich das hin, dass in der Textdatei immer nur der Wert geändert wird für den die entsprechende Browserart zutrifft.
Die Dati müsste ja so aussehen:
MSIE 6.0 | Anzahl
MSIE 5.5 | Anzahl
MSIE 5.0 | Anzahl
MSIE 4.0 | Anzahl
Opera | Anzahl
Firefox | Anzahl
Netscape | Anzahl
Jetzt müsste also, wenn jemand mit dem Netscape die Seite betritt, automatisch NUR der Wert von Netscape um 1 erhöht werden. Das bekomm ich irgendwie nicht hin.
2. Wie lege ich, wenn ich die Länge der Grafik mit PHP bestimmen will, deren Größe fest? mit dürfte das ja kaum gehen, oder?
Danke
anyone
Homepage selbermachen 7.851 Themen, 35.616 Beiträge
Eine Lösung auf Basis von Dateien ist eigenltich ziemlich ungünstig. So etwas löst man aus mehreren Gründen besser über eine Datenbank. Dazu ein paar Anregungen:
1. Es greifen gleichzeitig mehrere User auf deine Seite zu, welcher Zugriff erfolgt nun und wann? Selbst wenn die Datei gesperrt wird (und die anderen Anfragen warten müssen) kann es passieren, daß zwischen Öffnen der Datei mittels fopen und Locking mittels flock eine andere Instanz auf die Datei zugreift man müsste also umständlich mit temporären Dateien arbeiten und die Integrität der Werte wäre nicht sichergestellt.
2. Du mußt bei jeder Änderung die komplette Datei in den Speicher lesen, die Werte ausplitten, in ein Array eintragen, den entsprechenden Schlüssel suchen, den Wert erhöhen, alles wieder in die Datei schreiben und speichern.
Funktioniert das Ganze über eine DB-Tabelle reduziert sich der Aufwand auf:
UPDATE `zaehler` SET `zugriffe` +=1 WHERE `browser` = '$browser'
Die Sicherstellung der Datenintegrität bei konkurrierenden Zugriffen übernimmt die Datenbank.