24. juli 2006 - 16:20Der er
43 kommentarer og 4 løsninger
Logge IP, dato og tid
Hej, jeg anvender pt. nedenstående script for at logge IP-adresser på mit web site. Hvordan udvider jeg scriptet til også at logge dato og tid for besøg for den enkelte IP?
I øvrigt vil jeg gerne kunne lave en lille statistik-side, hvor oplysningerne for de enkelte besøg streames i en tabel. I den forbindelse vil jeg også gerne have det nye (IP, dato og tid) script udviklet til at gemme data i en SQL-database.
Grunden til det, er fordi hvis det ikke er en dato i år-måned-dag-time-min-sek format, gemmes det ikke, når det er datetime Men du kan bruge NOW() mysql_query("INSERT INTO tabelnavn (ip, datotid) VALUES ('".$ip."', NOW())") or die(mysql_error());
Umiddelbart ville jeg nok også lave en kolonne, "id" som er autoincrement og primary
Ja, det er det. Jeg skulle lige have PHP- og MySQL-koden i orden først, det kan jeg takke jer for :), og så skal jeg selv i gang med at lave en mindre statistik-side i HTML, hvor jeg forener HTML med SQL-forespørgsler. Det er meningen, at jeg skal kunne sortere i IP og dato. Jeg vil nemlig gerne have lidt statistik på mit site i stedet for en tæller...
Lognings-scriptet er placeret på hovedsiden, men jeg kan se at hver gang jeg er inde på en underside og kommer tilbage til hovedsiden, opdateres denne og dataene bliver registreret igen. Kan man undgå dette på simpel vis?
I phpMyAdmin ser det rigtig lækkert ud, for det er giver en perfekt statistik :) Jeg nu mangler jeg bare at have lavet selve statistik-siden og integrere en funktion, der optæller antal besøg på de enkelte sites.
Ok du, har selv rodet med PHP i 5-6 år, og da der kom noget tid ind i billedet, brugte jeg time() til at finde det ene eller det andet i Db'en
Min erfaring siger mig at du får langt større gavn af at bruge et datetime felt i Db'en, fordi du så kan bruge de dato funktioner som findes i mysql
Når du ikke bruger et datetime felt i DB'en, skal du altid til at lave noget PHP for f.eks. at beregne forskellen mellem to tidspunkter, i stedet for at gøre det i en query
Ja, den med datoen er jeg også i tvivl om, men jeg bryggede jo på supersquirrels eksempel. Men jeg skulle bare have det til at virke her i dag, og det gør det skam også. Det er jo nemt at replace VARCHAR med DATETIME.
Hvis du har 10000 rows i DB'en, vil du ikke få noget godt overblik i phpmyadmin. Men du kan godt lave et PHP script som lister måneder-år i en selectboks som findes i DB'en, og på den måde lave noget mere overskueligt statistik
Ja, meningen er at jeg i HTML opretter en dynamisk tabel, der lister hele databasens indhold. Man skal så kunne sortere efter IP, dato og side. Lige nu har jeg kun testet med nogle få klik, men det er nok til at se, at det virker som det skal. F.eks. klikkede jeg mig først ind på hovedsiden, dernæst side2, side3 og sluttede igen af med et klik på hovedsiden. Alle perfekt registreret :)
iøvrigt, at lave statistikscript, det er ikke bare så'n lige til! :O) Når du har fået lavet noget, finder du ud af der er noget mere du egentlig gerne vil putte på! :O)
Før fik jeg lagret dato og tid, som jeg ville have det, f.eks. 24-07-06 23:10:15 - ved at bruge NOW() lagres dato og tid således: 2006-07-24 23:22:20 - hvordan får jeg det ændret til det tidligere format?
Takker, kigger på om det kan lade sig gøre - go'nat ;)
Synes godt om
Slettet bruger
25. juli 2006 - 22:58#47
Lige et par eksempler på ting man kan gøre, hvis man bruger DATETIME-felter, som er i bedste fald meget besværlige ellers (nogle af dem grænsende til umulige):
Lave oversigter, der viser hits fordelt på: - ugedag (så man kan se hvilke dage, der er mest travlt på serveren) - time - ugedag og time - måned og dato (perfekt til at lave en graf af)
Og det er vel at mærke ikke særlig kompliceret kode, der skal til for disse eksempler.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.