Avatar billede hugopedersen Nybegynder
05. maj 2003 - 10:20 Der er 18 kommentarer og
1 løsning

Sidetæller der ikke går 'ud af huset'

Jeg mangler en sidetæller til en intranetside. Tælleren må ikke skulle gå ud på internettet da mange af de maskiner der bruger vores intranet ikke har adgang 'ud af huset'

Hvordan klarer jeg lige det ?
Avatar billede dk_akj Nybegynder
05. maj 2003 - 10:28 #1
altså en hittæller ??

//akj
Avatar billede dk_akj Nybegynder
05. maj 2003 - 10:34 #2
Opret en tabel (sidetaeller) med to felter, kald dem hits (number) og side (text)

Hvis du vil tælle på default.asp laver du en række i tabellen sidetaeller, i side skriver du default.asp og i hits skeiver du 0

På de sider du vil have en tæller på skriver du:

' tæl op på tæller i db
conn.execute ("update sidetaeller set hits = hits + 1 where side = 'default.asp'")   

'vis hits
set rs = conn.execute("select hits from sidetaeller where side='default.asp'")
if not rs.eof then
    response.write "Du er nr. " & rs("hits")  &  " der ser denne side."
end if
set rs=nothing


//akj
Avatar billede hugopedersen Nybegynder
05. maj 2003 - 10:41 #3
Umiddelbart vil jeg sige at den metode er 'nem' at snyde så man får en masse gratis hits (refresh - F5) - eller tager jeg fejl ?
Avatar billede dk_akj Nybegynder
05. maj 2003 - 10:43 #4
Næhhh du har ret.... Kan du bruge cookies ??

Hvilke regler skal der være for at den må tælle ??

//akj
Avatar billede hugopedersen Nybegynder
05. maj 2003 - 10:47 #5
cookies skulle ikke være noget problem.

Hvis det var så avanceret at hvert IP nummer kun blev talt med 1 gang hver time som det gør på mange af de kommercielle tællere, så var det da rart. Det burde man vel egentlig kunne styre med udløbstiden på en cookie eller ?

Ellers skal der ikke være andet fancy en at jeg kan sætte resultatet in i et eksisterende HTML dokument.
Avatar billede dk_akj Nybegynder
05. maj 2003 - 11:55 #6
<!--#include file="taeller.asp"-->

<%
' kald at tællerfunktion
mycount("default.asp")
%>

' ************** start taeller.asp *************
<%
function mycount(page)

    if request.Cookies(page) <> page then
        ' cookie ikke fundet
        ' tæl op på tæller i db
       
        'conn.execute ("update sidetaeller set hits = hits + 1 where side = '" & page & "'")   
        response.write "tæller op i db !!"
               
        ' bag en kage :-)
        Response.Cookies(page) = page
       
        ' udløbstidspunkt    f.eks 1/24/60 => 1 døgn / 24 timer / 60 min = 1 min.
        expires = now() + 1/24/60

        Response.Cookies(page).Expires =  Expires ' 1 min
        'response.write "<br>expires "& expires ' til test, viser hvornår cookie udløber

        else
        ' cookie fundet der skal ikke tælles op
        ' måske skal der ske noget andet ??
'        response.write "Hit er registreret" ' til test
    end if
   
    'vis hits
    set rs = conn.execute("select hits from sidetaeller where side='" & page & "'")
    if not rs.eof then
        response.write "Du er nr. " & rs("hits")  &  " der ser denne side."
    end if
    set rs=nothing

end function
%>
' ************** slut taeller.asp *************
Avatar billede hugopedersen Nybegynder
05. maj 2003 - 12:40 #7
Det ser interessant ud - jeg er desværre lige løbet ind i et driftsmæssigt problem der gør at jeg ikke får tid til at teste i dag.
Jeg vender tilbage ASAP
Avatar billede dk_akj Nybegynder
05. maj 2003 - 12:41 #8
Oki, du kan evt fange mig på msnmessenger dk_akj@hotmail.com

//akj
Avatar billede hugopedersen Nybegynder
06. maj 2003 - 12:42 #9
Fik lige 10 min. til at checke, men dit script bruger jo en database til at gemme data i og sådan en har jeg ikke på den side og kunne jeg undgå det, så ville jeg helst det.
Avatar billede dk_akj Nybegynder
06. maj 2003 - 12:55 #10
Så skal du gemme det i en text fil istedet.

//akj
Avatar billede hugopedersen Nybegynder
06. maj 2003 - 13:07 #11
Se det afføder 2 nye problemer for mig:

Har 'normale' brugere lov til at skrive på serveren? (eller er det serveren selv der gør det?)
Hvordan skriver man til en textfil fra ASP?
Avatar billede dk_akj Nybegynder
06. maj 2003 - 13:20 #12
Det er ikke brugeren men iusr_xxx der skal have skriverettigheder

Jeg syntes du skal lave en lille accessdb til det. Det er LANGT lettere at arbejde med samt at vedligeholde/udbygge.
Jeg vil gerne hjælpe dig med det hvis du vil ??

Her er lidt om skrivning til txt filer.
http://www.html.dk/tutorials/asp/lektion16.asp

//akj
Avatar billede hugopedersen Nybegynder
06. maj 2003 - 14:01 #13
Mange tak for hjælpen, nu fik jeg det til at virke ser det ud til.

Måske skal jeg have det udvidet til at virke med en db, men det må vente til jeg får bedre tid :-)

PS: har tilføjet dig i min messenger contactlist.
Avatar billede dk_akj Nybegynder
06. maj 2003 - 14:03 #14
Ok, jeg kan godt nok ikke se at du har tilføjet mig, prøv lige at sende en msg.

//akj
Avatar billede hugopedersen Nybegynder
06. maj 2003 - 14:18 #15
Jeg kan se Anders Kjær på min liste :-)
Avatar billede hugopedersen Nybegynder
06. maj 2003 - 15:00 #16
akj >  kan du lige guide mig her

Du bruger 1 døgn / 24 timer / 60 min for at finde tal der skal lægges til Now for at finde udløb.  Jeg kan ikke lige gennemskue hvordan regnestykket ser ud ved f.eks. 5 min.
Avatar billede dk_akj Nybegynder
06. maj 2003 - 15:05 #17
Divider med 12 istedet for 60.

//akj
Avatar billede hugopedersen Nybegynder
07. maj 2003 - 06:49 #18
Jeg fandt frem til at  x * (1/24/60) = antal min.
Avatar billede dk_akj Nybegynder
07. maj 2003 - 07:49 #19
Jeps :-)

' udløbstidspunkt    f.eks 1/24/60 => 1 døgn / 24 timer / 60 min = 1 min.
        expires = now() + 1/24/60
//akj
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester