Ich möchte für meine Seite gerne einen eigenen Counter erstellen.
Problem hierbei: wenig PHP-Kenntnisse, wenig MySQL-Kenntnisse.
Jedoch habe ich eine genaue Vorstellung, was der Counter machen soll, darum möchte ich es kurz nennen.
Die counter.php (ich möchte den gesamten Counter in nur dieser Datei haben) wird überall auf der Seite aufgeufen.
Betritt ein Gast die Seite, soll folgendes gemacht werden:
Diese Daten sollen in eine MySQL-Tabelle geloggt werden.
Wenn der selbe User mit der selben IP innerhalb der Reloadsperrenzeit nochmal auf die Seite zugreift, soll ausschließlich der Seitenzugriff per $REQUEST_URI; geloggt werden.
Nun das eigentliche Problem: Wenn 24 Stunden vergangen sind, sollen die geloggten Daten per eMail an mich gesendet werden. Dort werden die Mails 10 Tage von mir gespeichert, bevor sie automatisch gelöscht werden. Die 24 Stunden sollen nicht per Cronjob, sondern per einfachen Zeitstamp kontrolliert werden, auch wenn sich die Absendezeit dadurch immer verschiebt.
Das heißt, wenn die Mail bei mir ankommt, hätte ich es gerne so, dass nach oben genannten Schema die eMail in etwa so aussieht:
1005 | 184.188.166.38 | 03.11.04 | 19:12:47 | p12345.dip.t-dialin.net
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | http://www.google.de/search?q=Terraristik
index.html, terrastik/index.html, terraristik/leguane.html, terraristik/futter.html, kontakt/formular.html, kontakt/send.php, ueber/ueber.html, links/index.html
1006 | 173.143.101.5 | 03.11.04 | 19:19:25 | p54321.dip.t-dialin.net
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) |
index.html, bilder/bild1.html
Sozusagen:
Besucher |IP | Datum | Uhrzeit | Hostmark
Browser | Referer
Zugriff 1, Zugriff 2, Zugriff 3, Zugriff 4, Zugriff 5, etc.,
Es soll also solange nur den Request loggen, bis die Reloadsperrenzeit von diesem User abgelaufen ist, dann wieder ein kompletter Log.
Soviel zu Teil 1 des Scriptes.
Nun ein kleiner Teil 2:
Die counter.php soll nicht bloß loggen, sondern auch anzeigen. Angezeigt werden sollen:
X Besucher gesamt | X Besucher gestern | X Besucher heute | X Besucher online
Die Bremse an der Umsetzung dieses Scriptes bin ich. Denn bei PHP bin ich leider erst so weit, ein paar verschachtelte if-else-Sachen oder einzelne Code-Schnipsel schreiben zu können. Bei MySQL in etwa das gleiche. So habe ich immer keinen Plan, womit ich zuerst anfangen soll, wie ich das in die (bzw. in welche) Tabellen schreiben sowie auslesen lasse und wenn dann irgendwas nicht geht, dann halte ich mich damit über Stunden auf...
Es wäre demnach schön, wenn ihr mir zusammen in irgendeiner Art behifllich sein könntet, ich bin für jede Hilfe dankbar.
Problem hierbei: wenig PHP-Kenntnisse, wenig MySQL-Kenntnisse.
Jedoch habe ich eine genaue Vorstellung, was der Counter machen soll, darum möchte ich es kurz nennen.
Die counter.php (ich möchte den gesamten Counter in nur dieser Datei haben) wird überall auf der Seite aufgeufen.
Betritt ein Gast die Seite, soll folgendes gemacht werden:
- der Besuch wird erfasst
- die IP wird per $REMOTE_ADDR; erfasst
- die IP wird für eine (configuierbare) Zahl X gespeichert, die Reloadsperre also
- der Tag wird per date("d.m.y"); erfasst
- die Uhrzeit wird per date("H:i:s"); erfasst
- die Hostmark wird per $REMOTE_HOST; erfasst
- der Browser wird per $HTTP_USER_AGENT; erfasst
- der Referer wird per $HTTP_REFERER; erfasst
- der Zugriff auf die Seite wird per $REQUEST_URI; erfasst
Diese Daten sollen in eine MySQL-Tabelle geloggt werden.
Wenn der selbe User mit der selben IP innerhalb der Reloadsperrenzeit nochmal auf die Seite zugreift, soll ausschließlich der Seitenzugriff per $REQUEST_URI; geloggt werden.
Nun das eigentliche Problem: Wenn 24 Stunden vergangen sind, sollen die geloggten Daten per eMail an mich gesendet werden. Dort werden die Mails 10 Tage von mir gespeichert, bevor sie automatisch gelöscht werden. Die 24 Stunden sollen nicht per Cronjob, sondern per einfachen Zeitstamp kontrolliert werden, auch wenn sich die Absendezeit dadurch immer verschiebt.
Das heißt, wenn die Mail bei mir ankommt, hätte ich es gerne so, dass nach oben genannten Schema die eMail in etwa so aussieht:
1005 | 184.188.166.38 | 03.11.04 | 19:12:47 | p12345.dip.t-dialin.net
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | http://www.google.de/search?q=Terraristik
index.html, terrastik/index.html, terraristik/leguane.html, terraristik/futter.html, kontakt/formular.html, kontakt/send.php, ueber/ueber.html, links/index.html
1006 | 173.143.101.5 | 03.11.04 | 19:19:25 | p54321.dip.t-dialin.net
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) |
index.html, bilder/bild1.html
Sozusagen:
Besucher |IP | Datum | Uhrzeit | Hostmark
Browser | Referer
Zugriff 1, Zugriff 2, Zugriff 3, Zugriff 4, Zugriff 5, etc.,
Es soll also solange nur den Request loggen, bis die Reloadsperrenzeit von diesem User abgelaufen ist, dann wieder ein kompletter Log.
Soviel zu Teil 1 des Scriptes.
Nun ein kleiner Teil 2:
Die counter.php soll nicht bloß loggen, sondern auch anzeigen. Angezeigt werden sollen:
X Besucher gesamt | X Besucher gestern | X Besucher heute | X Besucher online
Die Bremse an der Umsetzung dieses Scriptes bin ich. Denn bei PHP bin ich leider erst so weit, ein paar verschachtelte if-else-Sachen oder einzelne Code-Schnipsel schreiben zu können. Bei MySQL in etwa das gleiche. So habe ich immer keinen Plan, womit ich zuerst anfangen soll, wie ich das in die (bzw. in welche) Tabellen schreiben sowie auslesen lasse und wenn dann irgendwas nicht geht, dann halte ich mich damit über Stunden auf...
Es wäre demnach schön, wenn ihr mir zusammen in irgendeiner Art behifllich sein könntet, ich bin für jede Hilfe dankbar.