Simpel statistik med PHP & MySQL

Tags:    php
Skrevet af Bruger #2345 @ 04.09.2003

Simpel statistik med PHP & MySQL



Indledning


Denne artikel handler om hvordan du kan lave en simpel statistik, der tæller hits på de sider du ønsker.

Funktionen


Statistikken kommer til at fungere således:
Når en bruger kommer ind på en af dine sider, bliver der indsat en række i din MySQL database med oplysninger om følgende: id, dato, tid og ip.

Ud fra databasen kan dataene så sorteres og opstilles kategorisk.

Oprette MySQL tabellen


Først oprettes MySQL tabellen hvori dataene skal gemmes.

Fold kodeboks ind/udKode 

Så til PHP scriptet


Scriptet laves som en PHP funktion, på den måde skal der kun skrives en linie på hver af de sider der skal laves statistik over.

Den første fil skal være en .inc fil. Opret en fil med navnet funktioner.inc og indsæt nedenstående script.
Fold kodeboks ind/udKode 

Herefter kan følgende kodestump indsættes på de sider der ønskes statistik over.

Fold kodeboks ind/udKode 

Tip: I stedet for at indsætte et navn, kan der indsættes $PHP_SELF så kan den samme kodestump bruges på alle siderne!!

Hente og sortere data



Opret en fil med navnet statistik.php

Denne fil skal sortere de data der ligger i tabellen web_stat

Herunder er et script der viser hits i en given periode.

Fold kodeboks ind/udKode 

Den sidste kode kan godt se lidt uoverskuelig ud, men prøv at kopiere indholdet. Så kan koden jo rettes som man ønsker det.


Konklution


Her er vist en simpel statistik, den kan naturligvis udbygges således at man kan se hits over en given tid, hvilke ip adresser der er mest aktive osv.

For de mere hardcore kan der også laves grafer over hits pr. dag, mm.

MVH
Groyk.dk

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (18)

User
Bruger #3271 @ 04.09.03 18:29
Ja, det virker jo fint nok. Tabellen bliver bare rimelig hurtig pænt lang !
User
Bruger #2330 @ 04.09.03 21:23
Det er lidt en sikkerheds-risiko at kalde sine filer med mysql oplysninger for *.inc
User
Bruger #2345 @ 05.09.03 11:56
Det kan du til dels have ret i, såfremt man bruger endelsen *.inc skal man placere disse filer i et ikke offentligt bibliotek.
User
Bruger #285 @ 06.09.03 12:23
Der mangler nok nogle lidt mere avancerede statestikker - fx unikke besøg (der bliver du nok nødt til både at have ip og host). Det kræver nemlig nogle lidt mere avancerede MySQL-forespørgsler, men man får til gengæld en mere detaljeret statestik...
User
Bruger #2368 @ 14.09.03 12:19
istedet for at kalde filerne *.inc bør de kaldes *.inc.php eller inc.*.php...

Ellers, en fin artikkel der...
User
Bruger #4503 @ 05.10.03 18:22
God artikel... Den beskriver hvordan du kan gøre det og giver ideer til fremtidige ting
User
Bruger #4130 @ 09.10.03 15:16
God artikel :D Lærte noget :D Tak !
User
Bruger #4569 @ 11.10.03 09:26
Hvor finder jeg "mysql.inc"
User
Bruger #4569 @ 11.10.03 09:37
Hvor finder jeg "mysql.inc"
User
Bruger #2345 @ 23.10.03 16:24
mysql.inc skal du selv oprette den skal lave forbindelse til din database.
User
Bruger #1076 @ 13.12.03 17:54
Mht. mysql.inc så burde du nok have fortalt i artiklen, at den skulle man selv oprette med sin mysql-info. Man må aldrig tro for godt om dem der læser sådan nogle artikler ;). Men ellers ser artiklen fin ud, dog lidt for simpel til at blive rigtig brugbar.
User
Bruger #5010 @ 06.06.04 14:55
det virker ikke :S snøft :(
User
Bruger #6202 @ 28.07.04 23:50
Er der nogle der kan komme med et eksempler på mysql.inc
Prøvede med den her
<?
$dbhost = "host";
$database = "datatbase";
$dbuser = "bruger";
$dbpass = "kode";
?>

<?
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($database);
?>

Men det virker ikke!!! Hjælp
User
Bruger #7656 @ 23.05.05 21:00
Hej
Hvordan laver man så scriptet også virker i "safe mode"?

Ellers et super script!
User
Bruger #7656 @ 23.05.05 21:17
Hej
Hvordan laver man så scriptet også virker i "safe mode"?

Ellers et super script!
User
Bruger #7797 @ 27.06.05 21:12
Forslag til sikkerhed:

ret filnavnet .inc til .php , og tilføj "<?php" i toppen og "?>" i bunden. Det gør nemlig at brugere ikke kan se indholdet af filen. Kan også være det retter problemet med safe mode.

Lover ikke noget, har ikke testet endnu, men skal selv til at lege med lidt statistik.:P
User
Bruger #10266 @ 26.07.06 14:45
Kan ikke få det til at virke :S
User
Bruger #14362 @ 11.11.08 03:30
Måske du skulle overveje lidt sikkerhed. Da man uden videre kan indsætte tilfældig kode i $ip, og da du ikke har brug for en ip på 200 tegn så er det en god ide at begrænse den.
Du skal være logget ind for at skrive en kommentar.
t