Avatar billede orca Nybegynder
22. juni 2001 - 13:59 Der er 7 kommentarer og
1 løsning

Let spm.

Nu har jeg siddet med denne kode i et stykke tid og jeg kan bare ikke se hvad problemet er. Det er en simpel counter som virker via en access db. Vha. sessionen \"update\" skulle den sikre imod reload knappen, men den opdaterer bare alligevel...

set rs = Conn.Execute(\"SELECT * from hits WHERE Id = 1\")
counter = rs(\"hits\")

if Session(\"update\") <> false then
counter = counter + 1
sql = \"SELECT * from hits WHERE Id = 1\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.open sql, conn, 1, 3
rs.update
rs(\"hits\") = counter
rs.update
end if

Session(\"update\") = false

response.write \"\" & counter & \"\"

Mvh Mark

www.fotx.net/orca
Avatar billede sv Nybegynder
22. juni 2001 - 14:03 #1
hmmm...

set rs = Conn.Execute(\"SELECT * from hits WHERE Id = 1\")
counter = rs(\"hits\")

if Session(\"update\") then
counter = counter + 1
sql = \"SELECT * from hits WHERE Id = 1\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.open sql, conn, 1, 3
rs.update
rs(\"hits\") = counter
rs.update
Session(\"update\") = false
end if

response.write \"\" & counter & \"\"

men måske skal du sikre dig via. global.asa at
session(\"update\") er true som default...
Avatar billede hirtshals Nybegynder
22. juni 2001 - 14:04 #2
brug flg istedet for

if len(Session(\"update\")) > 1 then
Avatar billede hirtshals Nybegynder
22. juni 2001 - 14:06 #3
sorry

if not len(Session(\"update\")) > 1 then

DVS - første gang en bruger ankommer er Session(\"update\") tom og tælleren opdateres - du sætter så sesion(\"update\") = true - nu er længden ikke længere mindre end 1 - og scriptet vil ej mere blive udført
Avatar billede sv Nybegynder
22. juni 2001 - 14:06 #4
if Session(\"update\") then
counter = counter + 1
sql = \"SELECT * from hits WHERE Id = 1\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.open sql, conn, 1, 3
rs(\"hits\") = counter
rs.update
Session(\"update\") = false
end if
Avatar billede ellebaek Nybegynder
22. juni 2001 - 14:10 #5
hvorfor ikke bruge noget i stilen af:
<%
\'taeller sessioner - ikke hits
Dim fs, file, visitorcount

if session(\"visitorcount\") = \"\" then

    set fs = createobject(\"scripting.filesystemobject\")
    set file = fs.opentextfile(server.mappath(\"log/count.dat\"))
    visitorcount = cint(file.readline)
   
        session(\"visitorcount\") = visitorcount
        visitorcount = visitorcount + 1
        file.close
        set file = fs.createtextfile(server.mappath(\"log/count.dat\"),true)
        file.writeline(visitorcount)
file.close
    set fs = nothing   
end if
   

response.write visitorcount

%>
Avatar billede sv Nybegynder
22. juni 2001 - 14:20 #6
if Session(\"update\") or isEmpty(session(\"update\")) or isNull(session(\"update\")) then
counter = counter + 1
sql = \"SELECT * from hits WHERE Id = 1\"
Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.open sql, conn, 1, 3
rs(\"hits\") = counter
rs.update
Session(\"update\") = false
end if
Avatar billede hirtshals Nybegynder
22. juni 2001 - 14:23 #7
Det hurtigste er da at måle på længden - en gang for allle
Avatar billede orca Nybegynder
22. juni 2001 - 14:34 #8
Jeg siger tak for alle svarene... Det var åbenbart ikke så let som jeg troede. Den eneste kode jeg umiddelbart fik til at vire var sv\'s sidste så han får pointene...

Mvh Mark

www.fotx.net/orca
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