Avatar billede mjall0w Nybegynder
19. juni 2003 - 14:03 Der er 3 kommentarer og
1 løsning

Counter der tæller forkert

Jeg har en counter der tæller forkert..
Hver gang at man lukket vinduet og går ind på siden igen tæller den som en ekstra besøgende..
Tænkte på om man ikke kunne undgå det med en cookie istedet for en session start ??

Global.asa:
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Application_OnStart
End Sub
Sub Application_OnEnd
End Sub

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>

default.asp:
<br>
      <font color="#000000">Antal Bes&oslash;gt: </font>
      <%
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
'rs.close
'set rs = Nothing
'MyConn.Close
'Set MyConn = Nothing
%>
      </font><font color="#0066CC" size="1" face="Verdana, Arial, Helvetica, sans-serif"></font><font color="#0066CC" size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= total %><br>
      <font color="#000000">Bes&oslash;g idag:</font> <%= dag %>

Håber i kan hjælpe mig lidt med det.. ;)
Avatar billede netjay Nybegynder
19. juni 2003 - 22:49 #1
Man kunne jo gemme klientens IP adresse i exempelvis en database eller tekstfil, og derefter undlade at tælle, hvis den genkender IPen fra idag...
Avatar billede mjall0w Nybegynder
20. juni 2003 - 07:08 #2
Ja kunne , man godt men så skal jeg bare til at bygge en ny DB op og lave scriptet helt anderledes.. Meen jo det kan man godt..
Vil jeg lige prøve så
Avatar billede mjall0w Nybegynder
13. juli 2003 - 10:14 #3
Har lavet counteren nu og den burde gerne virke..
Bruger den selv til min side, men giver lige koden alligvel her ;)

DB:
Navn: Hits.mdb
Under tabellen Hits skal der være en kolonne der hedder Hits
Under tabellen Datehits skal der være 3 kolonner: ID, IP, Dato

Counter.asp:
<%
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 DATEHITS Where IP = '"& Request.ServerVariables("REMOTE_ADDR")&"' and Dato = Date()"
Set rs = MyConn.execute(SQL)

'Application("Total") = rs("Total")
SQL1 = "SELECT * FROM Total"
Set rs1 = MyConn.execute(SQL1)
Application("Total") = rs1("Total")

if rs.eof then
SQL = "UPDATE Total SET Total = " & (Application("Total")+1)
rs.close
Set rs = Nothing
MyConn.execute(SQL)
end if

SQL = "SELECT * from DateHits WHERE Dato = Date() and IP = '"& Request.ServerVariables("REMOTE_ADDR")&"'" ' 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,IP) VALUES (Date(),'"& Request.ServerVariables("REMOTE_ADDR") &"')"
MyConn.execute(SQL)
end if
rs.close
Set rs = Nothing

SQL = "SELECT * from DateHits WHERE Dato = Date() and IP = '"& Request.ServerVariables("REMOTE_ADDR")&"'" ' Rettet
Set rs = MyConn.execute(SQL)

if rs.eof then
SQL = "UPDATE DateHits SET Hits = Hits+1 WHERE Dato = Date()"
end if
rs.close
Set rs = Nothing

MyConn.execute(SQL)
Dim overmaaned
overmaaned = DateAdd("d", -32, date())
SQL = "DELETE FROM DateHits Where Dato < DateAdd('d',-2,Date())"
MyConn.execute(SQL)
MyConn.Close
Set MyConn = Nothing
%>
<font color="#0066CC" size="1" face="Verdana, Arial, Helvetica, sans-serif"><font color="#000000">Antal
Bes&oslash;gt: </font>
<%
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 * from DateHits where Dato = Date()"

Set rs = Server.CreateObject("ADODB.RecordSet")
SQL2 = "SELECT Count(*) AS dag FROM Datehits WHERE Dato = Date()"
rs.Open SQL2, myConn, 1, 3

Set rs2 = Server.CreateObject("ADODB.RecordSet")
SQL3 = "SELECT Count(*) AS total FROM Total"
rs2.Open SQL3, myConn, 1, 3
%>
</font><font color="#0066CC" size="1" face="Verdana, Arial, Helvetica, sans-serif"></font><font color="#0066CC" size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=rs2("total") %><br>
<font color="#000000">Bes&oslash;g idag:</font> <%=rs("dag") %></font>

:D
Avatar billede mjall0w Nybegynder
13. juli 2003 - 10:15 #4
Skal lige siges jeg ikke har lavet det som en Global.asa men bare som kan ligge som en alm asp fil
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