29. februar 2004 - 07:50Der er
1 kommentar og 1 løsning
lave en tæller der kun kan ses af mig
jeg er kunde hos surftown.dk (de bruger ASP og MYSQL databaser (underlig blanding)) og er ret glad for det, men det eneste jeg godt kunne tænke mig er at finde ud af hvordan man laver en tæller der kan se hvor mange besøgende der har været på siden (det skal ikke være sådan så hvis jeg opdaterer siden, på min egen computer, at det så gældes som et besøg, men den skal helst kunne huske det via ip-adresser eller mac adresser)
kan det lade sig gøre at lave en tæller der er usynlig for brugerne? hvis nej, hvordan kan man så lave en lille tæller på siden (i ASP) der gør det muligt at se "hits" og "visitors", der viser hvor mange kliks der har været (hits), og hvor mange forskellige ip-adresser der har været på siden (visitors).
vær venlig at paste koden her hvis det kan lade sig gøre...
Det her har jeg haft liggende længe og ja, det kan du jo ligeså godt bruge... du bruger mySQL og det er jo fint nok, mit er til MS ACCESS men da det kun er din "Connection" der skal laves om så burde der ikke være nogle problemer.
Scriptet består af to filer. Den første er default.asp og indeholder kun scriptet for at opsamle data - koden er kommenteret, så der burde ikke være det vilde der.
'Database forbindelse. 'Jeg har her brug access, men der er ingen hindring for, 'at en MySQL database ikke skulle virke. set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=I:\Webs\Techs\Simple\counter2\db\mydb.mdb"
'Hent den "fremmedes" ip rem_ip = Request.ServerVariables("REMOTE_ADDR")
'Den ip som ikke skal tælles op i databasen noCount_ip = "127.0.0.1"
'Her kontrollerer vi så, om rem_ip er den som ikke skal tælles med if not rem_ip = noCount_ip then
'Check om Sessionvariablen "nyBruger" er tom if IsEmpty(Session("nyBruger")) then
'Hvis den er tom, så giv den en værdi og opret SQL-sætning 'bemærk, at intUnik = 1 fordi det er en unik bruger Session("nyBruger") = 1
'Hvis den ikke er tom, så skal den ikke angives en værdi 'bemærk, at intUnik = 0 fordi det er en bruger der har været her før SQL = "INSERT INTO stats (strIP, intUnik) VALUES ('" & rem_ip & "', 0)"
end if
'Der skal under alle omstændigheder indsættes data i databasen, 'og dette gør vi her conn.Execute(SQL) end if 'IP Check %>
Den anden fil er status.asp og indeholder kode til at vise meget simpel statistik over de indsamlede data. faktisk viser den kun antal unikke brugere, antal brugere i alt og så regner den gennemsnittet ud af sidevisninger pr. brugere
'Database forbindelse. 'Jeg har her brug access, men der er ingen hindring for, 'at en MySQL database ikke skulle virke. set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=I:\Webs\Techs\Simple\counter2\db\mydb.mdb"
'Hent diverse ting ud fra databasen 'Først hentes antallet af unikke sidevisninger, intUnik = 1 SQL = "SELECT COUNT(id) as [antal] FROM stats WHERE intUnik = 1" set oRs = conn.Execute(SQL)
'Variablen intUnik angiver antallet af 'unikke brugere intUnik = oRs("antal")
'Så skal det samlede antal sidevisninger hentes SQL = "SELECT COUNT(id) as [total] FROM stats" set oRs = conn.Execute(SQL)
'Variablen intTotal indeholder totale sidevisninger intTotal = oRs("total")
'Her udskrives lidt statistik omkring de brugere der har 'brugt sitet, bl.a. sidevisninger pr. bruger Response.Write("Unikke: " & intUnik) Response.Write("<br>") Response.Write("Totale: " & intTotal) Response.Write("<br>") Response.Write("Gennemsnitlige sidevisninger pr. bruger: " & Round(intTotal / intUnik, 2))
mange tak for din kode - jeg er ved at få den til at virke, men jeg er ikke den store ekspert i oprettelse af databaser osv... når læser det her, så må du meget gerne skære det mere ud i pap :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.