Avatar billede burningice Nybegynder
24. april 2001 - 03:53 Der er 21 kommentarer og
1 løsning

global.asa... virker ikke efter hensigten

Nedenstående kode virker, og alligevel ikke

den vil ikke slette fra databasen igen... det er som om at den ikke kører hvad der ligge i Session_OnEnd... hvad er der galt ??

<script language=\"VBScript\" runat=\"server\">

Sub Application_OnStart
Application(\"BrugereOnline\") = 0
End Sub

Sub Session_OnStart

Application(\"BrugereOnline\") = Application(\"BrugereOnline\") + 1

if request.cookies(\"pauli\")(\"username\") <> \"\" then

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"/log/db.mdb\")

set rs = Server.CreateObject(\"ADODB.RecordSet\")
strSQL = \"SELECT * FROM user_log\"

rs.open strSQL, conn, 1, 3

rs.addnew
rs(\"user\") = request.cookies(\"pauli\")(\"username\")
rs(\"time\") = now
rs.update

rs.close
set rs = nothing

conn.close
set conn = nothing

end if

End Sub


Sub Session_OnEnd

Application(\"BrugereOnline\") = Application(\"BrugereOnline\") - 1

if request.cookies(\"pauli\")(\"username\") <> \"\" then

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"/log/db.mdb\")

strSQL = \"DELETE * from user_log where (user = \'\"& request.cookies(\"pauli\")(\"username\") &\"\')\"
conn.execute(strSQL)

conn.close
set conn = nothing

end if

End Sub

</script>
Avatar billede erikjacobsen Ekspert
24. april 2001 - 07:56 #1
Om request.cookies er til rådighed på dette tidspunkt ved jeg ikke. Men session-
variabler er, så put værdierne deri istedet for. Og så bliver den jo først kørt 20
minutter efter brugeren forlader siden.
Avatar billede burningice Nybegynder
24. april 2001 - 12:33 #2
uhm.. nu er jeg ikke helt med... hvor skal jeg lægge denne DELETE istedet siger du??
Burde ovenstående DELETE ikke blive kørt når brugeren logger ud med session.abandon eller efter 20 min?? Du kan prøve at se scriptet i funktion her http://pauli.gic.gl hvis du logger ind som cyberfessor / password får du en cookie og som du kan se bliver users online bare ved med at stige hvis man logger ud.
Dog kører application(\"brugereonline\") uden problemer, da den jo ellers også ville stige...

En sidste bemærkning... hvis jeg kører DELETE i forbindelse med log ud virker det fint, så koden fejler ikke noget!!
Avatar billede erikjacobsen Ekspert
24. april 2001 - 12:39 #3
Nej, men er der værdier i request.cookies når du er i global.asa ? Jeg er ikke sikker, men
det virker umådeligt ulogisk at der skulle være... Derfor - smid dem over i en
session-var, for så er de der.
Avatar billede burningice Nybegynder
24. april 2001 - 13:00 #4
well.. den kører jo session_OnStart så der må jo være noget i den cookie :)

det sjove er også, at selv om jeg \"med vilje\" laver fejl i min conn kode i session_onend, ja... så melder den ikke engang fejl :(

Okay... nu ser koden sådan her ud, men det virker stadigvæk ikke... den tilføjer kun, ikke noget med at slette igen

<script language=\"VBScript\" runat=\"server\">

if request.cookies(\"pauli\")(\"username\") <> \"\" then

session(\"useronline\") = request.cookies(\"pauli\")(\"username\")

end if

Sub Application_OnStart
Application(\"BrugereOnline\") = 0
End Sub

Sub Session_OnStart

Application(\"BrugereOnline\") = Application(\"BrugereOnline\") + 1

if session(\"useronline\") <> \"\" then

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"/log/db.mdb\")

set rs = Server.CreateObject(\"ADODB.RecordSet\")
strSQL = \"SELECT * FROM user_log\"

rs.open strSQL, conn, 1, 3

rs.addnew
rs(\"user\") = session(\"useronline\")
rs(\"time\") = now
rs.update

rs.close
set rs = nothing

conn.close
set conn = nothing

end if

End Sub

Sub Session_OnEnd

Application(\"BrugereOnline\") = Application(\"BrugereOnline\") - 1

if session(\"useronline\") <> \"\" then

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"/log/db.mdb\")

strSQL = \"DELETE * from user_log where (user = \'\"& session(\"useronline\") &\"\')\"
conn.execute(strSQL)

conn.close
set conn = nothing

end if

End Sub

</script>
Avatar billede erikjacobsen Ekspert
24. april 2001 - 13:06 #5
Syntaksen er nu også

  StrSQL = \"DELETE from user_log where (user = \'\"& session(\"useronline\") &\"\')\"

Jo vel er der en cookie på klienten, og den bliver sendt med hver gang, men der
ligger je netop ikke en forespørgsel til grund for session_onend. Hvis du er nogenlunde
sikker på der er noget i session(\"uiseronline\") burde den virke nu.
Avatar billede burningice Nybegynder
24. april 2001 - 13:17 #6
er det ikke ligemeget om * er med eller ikke ??

det er faktisk rigtigt det du siger der, det med forespørgslen... det kom jeg lige til at tænke på... når brugeren forlader sitet og session_onend køres spørger den efter cookies... da brugere er væk er der selvfølgelig ingen til at give svar og der bliver ikke slettet noget... er det forstået korrekt ??
Avatar billede erikjacobsen Ekspert
24. april 2001 - 13:59 #7
nej, det er formelt en syntaksfejl i SQL - om lige Acces accepterer det
alligevel ved jeg ikke.
Avatar billede burningice Nybegynder
24. april 2001 - 14:03 #8
arg... det virker altså IKKE !!!


Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"/log/db.mdb\")

conn.execute(\"DELETE from user_log where (user = \'\"& session(\"useronline\") &\"\') order by time DESC\")

conn.close
set conn = nothing

ovenstående koder bliver IKKE kørt når man logger ud
Avatar billede erikjacobsen Ekspert
24. april 2001 - 14:09 #9
Hvad i al verden laver den order by der. Også syntaksfejl
Avatar billede burningice Nybegynder
24. april 2001 - 14:10 #10
det var en af mine med_vilje fejl, men den reagerer IKKE :(
Avatar billede erikjacobsen Ekspert
24. april 2001 - 14:23 #11
Tjah, ok, med mindre jeg ligefrem skal til at prøve selv, så har jeg ingen
bedre forslag. Jeg kan ikke lige køre ASP med global.asa her hvor jeg sidder.

Erik \"Livet Er For Kort Til ASP\" Jacobsen :)
Avatar billede burningice Nybegynder
24. april 2001 - 14:26 #12
kan det ikke være fordi at... når jeg laver en session.abandon slettes ALLE sessions, inkl. session(\"useronline\")... det sker FØR Session_onend ??
Avatar billede erikjacobsen Ekspert
24. april 2001 - 14:33 #13
godt spørgsmål - men jeg tror det ikke. Det ville netop gøre det umuligt
at lave sessionsspecifikke handlinger i session_onend.
Avatar billede burningice Nybegynder
24. april 2001 - 14:49 #14
det er det måske også :) det virker i hvert fald sådan :)

prøver lige noget !!
Avatar billede burningice Nybegynder
24. april 2001 - 14:59 #15
nope... ikke engang
conn.execute(\"DELETE from user_log where (user = \'cyberfessor\')\")
bliver kørt.. jeg er ved at være desperat... sikker ikke fordi det betyder så meget for dig, men jeg er villig til at gi MANGE point hvis du får det til at funke
Avatar billede burningice Nybegynder
24. april 2001 - 15:50 #16
erik... jeg gir\' dig adgang til et site hvor du kan lege med det... hvis du har lyst??
Avatar billede erikjacobsen Ekspert
24. april 2001 - 16:00 #17
først i aften efter kl. 21 - men du kan bruge min email - klik på mit navn.
Avatar billede burningice Nybegynder
24. april 2001 - 18:31 #18
okay... er der nogen der kender til global.asa ?? hvad må man skrive i den, og hvad må man ikke?? det lader til at den afvlikler alt hvad der står i session_onstart men ingen ting fra session_onend

ikke engang min application(\"brugeronline\") bliver kørt... og ligemeget hvor meget shit og volapyk jeg skriver... det bliver ignoreret, ingen fejl overhovedet...
Avatar billede no_doubt Nybegynder
24. april 2001 - 22:19 #19
Her er der heller ik mere gang i den *g*
Avatar billede burningice Nybegynder
24. april 2001 - 23:29 #20
erik... giv lige et svar, så får du dine point.. flere til samlingen :D
Avatar billede erikjacobsen Ekspert
24. april 2001 - 23:46 #21
Jah, hvis jeg også må sige at løsningen var ikke at bruge server.mappath, men
den fulde sti til databasen. Spørg mig ikke hvorfor :=)
Avatar billede burningice Nybegynder
25. april 2001 - 00:37 #22
det nemlig rigtigt
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