Avatar billede tbj Nybegynder
19. marts 2003 - 10:58 Der er 6 kommentarer

ASP tæller ?

På min side Spaz.dk har jeg en tæller som jeg fandt på ASP.dk
Problemet er bare at der er en lille fejl ved den som gør at der engang imellem står 96 97
og hvis man så opdaterer bliver det til det altså 97.

Nogen der ved hvorfor der bliver skrevet 2 tal engang imellem.
Hvis man opdaterer forsvinder det altid og så står der det rigtige tal.

OBS : I de 2 tekstfiler står der kun ipér og selve tallet f.eks 97, så de kan ik være problemet.

Koden er her :

<!--#include virtual="/Stats/counter.txt"-->
    <%
' These following is coded by Tony Lorentzen, June 2000
' If you want more information or have some freelance
' assignments please contact me at tony@lorentzen.com

function incrementHits()
    ' Here we open the counterfile and increment it by one
    ' and return the new value of the counterfile
    Dim txtFile, objStream
    counterFil = "/Stats/counter.txt"
    Set txtFile = Server.CreateObject("Scripting.FileSystemObject")
    Set objStream = txtFile.OpenTextFile(Server.MapPath(counterFil), 1, True)
    hits = objStream.ReadLine
    hits = hits + 1
    Set objStream = txtFile.OpenTextFile(Server.MapPath(counterFil), 2, True)
    objStream.WriteLine hits
    objStream.Close
    Set objStream = Nothing
    Set txtFile = Nothing
    incrementHits = hits
end function

sub updateHistory()
    ' Here we insert the users IP number, actual date and time
    ' into the historyfile
    Dim txtFile, objStream
    counterFil = "/Stats/history.txt"
    Set txtFile = Server.CreateObject("Scripting.FileSystemObject")
    Set objStream = txtFile.OpenTextFile(Server.MapPath(counterFil), 8, True)
    objStream.WriteLine now() & "|" & Request.ServerVariables("REMOTE_HOST")
    Set objStream = Nothing
    Set txtFile = Nothing
end sub

function cleanHistory()
    ' This function reads the historyfile and deletes alle entries that
    ' are older than 15 minutes. To change the default value change the
    ' variable called "minLimit". The function then return then value
    ' of the new historyfile for further processing
    dim MyArray
    minLimit = 15
    historyFil = "/Stats/history.txt"
    Set txtFile = Server.CreateObject("Scripting.FileSystemObject")
    Set objStream = txtFile.OpenTextFile(Server.MapPath(historyFil), 1, True)
    Do While Not objStream.AtEndOfStream
        StringFromFile = objStream.Readline
        MyArray = split(StringFromFile,"|",-1,1)
        if dateDiff("n",MyArray(0),Now()) < minLimit then
            newFile = newFile & StringFromFile & vbCrLf
        end if
    Loop
    Set objStream = Nothing
    cleanHistory = newFile

    Set objStream = txtFile.OpenTextFile(Server.MapPath(historyFil), 2, True)
    objStream.Write newfile
    objStream.Close
    Set objStream = Nothing
end function

' Now - let's test if the users IP number exists in the new historyfile
' and if it doesn't we update the historyfile, increment the counterfile
' and response.write the hitcount.
if inStr(1,cleanHistory(),Request.ServerVariables("REMOTE_HOST")) = 0 then
    call updateHistory
    Response.write incrementHits()
end if
%>
Avatar billede tbj Nybegynder
19. marts 2003 - 10:59 #1
Avatar billede mufoxe Nybegynder
19. marts 2003 - 11:14 #2
Det er vel fordi et website har flere brugere af gangen. Hvis du har en DB på dit site, ville det være bedre at indsætte en række for hvert hit.
Avatar billede tbj Nybegynder
19. marts 2003 - 11:17 #3
Nej tror ik det er pga det for det er kun lige når man først er inde. Hvis man opdaterer forsvinder det ALTID.
Avatar billede tomh Nybegynder
19. marts 2003 - 11:46 #4
Som jeg kan se det, ser situationen således ud:

Hvis det er en unik bruger, så inkluderer du stats-filen OG udskriver det nye "hit-antal". Altså vises 2 tal.

Er det derimod en "kendt" bruger inkluderes kun stat-filen. Prøv at lave incrementhits til en sub istedet for en function - eller bare sæt en varibel til incrementhits() istedet for at udskrive den.
Avatar billede tbj Nybegynder
19. marts 2003 - 13:40 #5
jeg fjerner den bare.... det med sub duede ikke
Avatar billede tomh Nybegynder
19. marts 2003 - 13:48 #6
Hvis du laver den til en sub skal du fjerne response.write foran incrementHits().
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