Avatar billede mjall0w Nybegynder
15. maj 2003 - 09:08 Der er 9 kommentarer og
1 løsning

Counter, der ikke opdatere ordentligt..

Hej.
Jeg har en counter, som ikke opdaterer rigtigt.. Hvis jeg trykker F5 på siden opdaterer den ikke en til besøgende (Godt nok).. Men hvis jeg lukker vinduet og går ind på den igen, så giver den entil besøgende selvom man har været inde på det..

DBPath = "DBQ=" & server.mappath("hits.mdb")
DBPath = "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
set MyConn = server.createobject("ADODB.connection")
MyConn.Open DBPath
Dim total,dag,dagt,dags,dage
SQL = "Select * from Total"
SQL1 = "Select Hits from DateHits where Dato = Date()"
SQL2 = "Select sum(Hits) as summen from DateHits where Dato > DateAdd('d',-2,Date())"
SQL7 = "Select sum(Hits) as summen from DateHits where Dato > DateAdd('d',-8,Date())"
SQL31 = "Select sum(Hits) as summen from DateHits where Dato > DateAdd('d',-32,Date())"
Set rs = MyConn.execute(SQL)
if NOT rs.EOF OR NOT rs.BOF then
total = rs("Total")
else
total = 0
end if
rs.close
set rs = Nothing
Set rs = MyConn.execute(SQL1)
if NOT rs.EOF OR NOT rs.BOF then
dag = rs("Hits")
else
dag = 0
end if
rs.close
set rs = Nothing
Set rs = MyConn.execute(SQL2)
if NOT rs.EOF OR NOT rs.BOF then
dagt = rs("summen")
else
dagt = 0
end if
rs.close
set rs = Nothing
Set rs = MyConn.execute(SQL7)
if NOT rs.EOF OR NOT rs.BOF then
dags = rs("summen")
else
dags = 0
end if
rs.close
set rs = Nothing
Set rs = MyConn.execute(SQL31)
if NOT rs.EOF OR NOT rs.BOF then
dage = rs("summen")
else
dage = 0
end if
Avatar billede mjall0w Nybegynder
15. maj 2003 - 09:45 #1
Nå ja min global.asa ser sådan her ud:
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Session_OnStart
Session.Timeout = 1440
Application.Lock
DBPath = "DBQ=" & server.mappath("hits.mdb")
DBPath = "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
set MyConn = server.createobject("ADODB.connection")
MyConn.Open DBPath

SQL = "SELECT * FROM TOTAL"
Set rs = MyConn.execute(SQL)
Application("Total") = rs("Total")
rs.close
Set rs = Nothing
SQL = "UPDATE Total SET Total = " & (Application("Total")+1)
MyConn.execute(SQL)

SQL = "SELECT * from DateHits WHERE Dato = Date()" ' Rettet
Set rs = MyConn.execute(SQL)
if NOT rs.EOF OR NOT rs.BOF then
Application("Hits") = rs("Hits")
else
Application("Hits") = 0
SQL = "INSERT INTO DateHits (Dato,Hits) VALUES (Date(), 0)"
MyConn.execute(SQL)
end if
rs.close
Set rs = Nothing

SQL = "UPDATE DateHits SET Hits = Hits+1 WHERE Dato = Date()"
MyConn.execute(SQL)
Dim overmaaned
overmaaned = DateAdd("d", -32, date())
SQL = "DELETE FROM DateHits Where Dato < DateAdd('d',-32,Date())"
MyConn.execute(SQL)
MyConn.Close
Set MyConn = Nothing
Application.Unlock
End Sub
Sub Session_OnEnd
End Sub
</SCRIPT>
Avatar billede the_bma_man Nybegynder
15. maj 2003 - 09:58 #2
Det er fordi, du gør det i session_onstart.
Når du lukker din browser, og åbner igen, så starter du en ny session.
Avatar billede mjall0w Nybegynder
15. maj 2003 - 13:40 #3
Hmm, kan man ændre det ??
Avatar billede the_bma_man Nybegynder
15. maj 2003 - 13:55 #4
Du kan lade siden gøre det i stedet - og så styre, om man har opdateret i dag vha. en cookie.
Bagdel - de der ikke godtager cookies, vil opdatere hver gang - også ved F5.
Avatar billede mjall0w Nybegynder
15. maj 2003 - 14:53 #5
Hmm, kan du komme med en kode til eksempel ??
Avatar billede mjall0w Nybegynder
18. maj 2003 - 12:19 #6
Okay, ingen der kan hjælpe mig lidt ??
Avatar billede the_bma_man Nybegynder
20. maj 2003 - 08:52 #7
Alt din update hits mm. som du i dag har i global asa lægger du på din default-side (alternativ i en include-fil (en fil, der includeres på alle de andre asp-sider) hvis man skal tælle besøgende op også, hvis man kommer en anden vej ind på sitet).
Hertil skal du så lige lave en if, der lige spørger på en cookie, og hvis denne er ok - altså at man _ikke_ har været der i dag, så gør du alt dit counter-halløj, og sætter til sidst cookien. Hvis man har været der (får du igen fra cookien), så falder den bare igennem din if - og gør igenting.
Avatar billede mjall0w Nybegynder
05. juni 2003 - 14:52 #8
Lukker..
Fandt ikke rigtig nogen løsning
Avatar billede mjall0w Nybegynder
05. juni 2003 - 14:52 #9
1
Avatar billede the_bma_man Nybegynder
16. juni 2003 - 11:11 #10
Hmm, ikke nogen løsning.
Du fik ellers en, der virker - skulle bare implementeres.
:-(
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