10. maj 2003 - 17:27Der er
32 kommentarer og 1 løsning
Counter der tæller unikke besøgende i MySQL
Jeg skal simpelthen bare bruge en counter der tæller unikke besøgende, den skal "re-sette" hver 24 time og være lavet af en blanding mellem cookies og mysql, dvs. at den lægger en cookie hos brugeren + den logger IP'en i database så der kommer en slags "dobbelsikring"
Jeg skal bare have en færdig løsning da jeg ikke mener det er det sværeste at lave - jeg kan ikke :D
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Hvordan "dobbeltsikring"? Skal en cookie afgøre om det er samme besøgende, eller skal IP-en? Hvad hvis der er flere personer bag samme IP? Eller hvis en person skifter IP?
regin >> ellers tak men det skal KUN kunne det ovennævnte da jeg helst vil holde tingene adskilt lige p.t, og det skal være noget som brugeren kan se på min side
- Tælle UNIKKE brugere - jeg er sådan set ligeglad hvordan den gør, bare den ikke tæller "hits". - Re-sette sig selv hver 24 timer så brugeren derfor tæller med i stat igen, dermed IKKE sagt at det samlede antal visitors skal slettes, det skal fortsætte i det uendelige - Brugerene på min side skal se en tekst hvori der står hvor mange brugere der har været, noget ala "Total of xxxx visitors" men jeg er tilfreds bare den viser tallet...
Jeg er sådan set ligeglad med hvordan og hvorfor den blir lavet som den gør, bare den virker...tak !
Synes godt om
Slettet bruger
10. maj 2003 - 18:25#9
Prøv med følgende... <?php
/* Opret følgende sql-tabel CREATE TABLE tabel ( ip varchar(255) NOT NULL default '', time int(10) unsigned NOT NULL default '0', UNIQUE KEY ip (ip) ) TYPE=MyISAM; */
//Er connected til databasen i forvejen! function statistic() { $ip = $_SERVER['REMOTE_ADDR']; $time = time(); $sql = "INSERT into tabel (ip,time) VALUES ('$ip','$time')"; $result = mysql_query($sql); if(!$result) { $sql = "update tabel set time='$time' where ip='$ip'"; mysql_query($sql); } $h24 = $time - 3600*24;//24 timer $sql = "SELECT count(ip) FROM tabel where time>$h24"; $result = mysql_query($sql); $hits = mysql_result($result,0); return $hits; }
Der er ingen mulighed for på serversiden at tælle "unikke" besøgende. Uanset hvad du vælger, vil den kunne tælle for mange eller for få. Det plejer vel ikke at være noget problem, når du ved det. Du har så blot et ca. tal.
Synes godt om
Slettet bruger
10. maj 2003 - 18:47#11
Ovenstående vil f.eks. tælle samtlige søgerobotter som kommer forbi din side. Og alle de folk som sidder bag en proxyserver vil kun blive talt som en... det er antallet af unikke IP'er som bliver talt...
regin hvad mener du med "er connected til databasen i forvejen" skal jeg lave en config hvor jeg connecter til den? eller hvordan?
Synes godt om
Slettet bruger
10. maj 2003 - 23:44#13
Ja... koden ovenover smider du ind på alle de sider som kører i php... Der går jeg udfra at du automatisk laver et connect til databasen... ellers så laver du bare en config-fil til det!
men altså den sletter ikke det SAMLEDE antal visitors vel ? den sletter kun selve IP'en hos brugeren så den kan tælle op 2 gange i løbet af fx 48 timer, det samlede antal blir ved med at stige uden at resettes ikke?
Synes godt om
Slettet bruger
11. maj 2003 - 00:36#30
$sql = "delete from tabel where time<$h24"; mysql_query($sql); ---------------------- Med denne kode vil der kun være registreret brugere for de sidste 24 timer... Men "resettet" har kun betydning for tabellens størrelse. Du kan lade det stå eller fjerne det.... outputtet fra din statistic(); vil være det samme.
hvis du vil skide et svar i spm !! så skal jeg håndlange dig nogle point
Synes godt om
Slettet bruger
11. maj 2003 - 00:37#33
Ok... jeg lægger lige et svar... :P
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.