webForumDet fria alternativet

Session_onend med databas?

ASP

29 svar · 427 visningar · startad av erik_nordell

Medlem sedan aug. 2000431 inlägg
Frågan#1

Hejsan...

Jag vill ha en automatisk utloggning!
I databasen så¨uppdateras ett fält när man loggar in till online...
och när man lämnar sidan s¨å vill jag att den ska uppdatera fältet med dagens datum så här typ:

Sub session_onEnd

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.Mappath("db/databas.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM info where anvandarnamn ='"&Session("anvandarnamn")&"' "

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet("online") = date()

RecSet.Update
RecSet.Close
Connect.Close

men det funkar ej?
gör jag nått fel?

------------------
//Erik
//Tapiren.net

Medlem sedan dec. 19998 577 inlägg
#2

Vad jag vet så kan man inte använda sig av sessioner när man kör Sub Session_onEnd. Det är ju då sessionen är avslutad.

------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Är du med i facket?

Medlem sedan aug. 2000431 inlägg
#3

Nää men hur ska jag göra då?
jag vill ha automatisk utloggning om man bara sticker där ifrån utan popup fönster eller dyl.

------------------
//Erik
//Tapiren.net

Medlem sedan juni 200032 967 inlägg
#4

det är faktiskt som så, att sessionerna finns kvar tills efter session_onend är klar. så det är inga problem att använda sig av sessioner i session_onend. jag kan inte se vad du gjort som gör att det inte funkar, tyvärr.

jag bara undrar vad som händer om du istället för att använda recset.update gör en riktig update fråga i sql?!

dessutom är det omöjligt för webservern att veta att du lämnat siten. session_onend körs antingen när timeouten inträffar, eller när du anropar session.abandon.

------------------
don't follow your friends -- inflate them

Medlem sedan aug. 2000431 inlägg
#5

Japp....
Jag har en timepout på 5 minuter.
Du menar typ så här?:
Addera = "Update anvandarnamn FROM info where anvandarnamn ='"&Session("anvandarnamn")&"' " ??
Är det rätt?

------------------
//Erik
//Tapiren.net

Medlem sedan juni 200032 967 inlägg
#6

typ:

update [info] set [online] = now where [anvandarnamn] = '" & session("anvandarnamn") & "'"

för att det ska göra samma sak som din recset-operation.

------------------
don't follow your friends -- inflate them

[Redigerat av @nders den 11 aug 2000]

Medlem sedan aug. 200026 inlägg
#7

hmmm.. sessions dör ju vid onend.. det finns bara kvar Session.SessionID då..
alltså när någon loggar in så måste du ha en kolumn som heter "sessionID" som du sätter till Session.SessionID..
och sen vid session_onend så tar du
SQL = "bla bla bla where SessionID = '" & Session.SessionID & "'" istället för Session("anvandarnamn") göjset..

Medlem sedan juni 200032 967 inlägg
#8

patrik: är du säker?

det måste jag kolla upp...

mvh

------------------
don't follow your friends -- inflate them

Medlem sedan aug. 2000431 inlägg
#9

hmmm..
hur var det?
är sessionen kvar eller?
men hur ser man om det är fel i global.asa?
Alltså scipt fel?!?

------------------
//Erik
//Tapiren.net

Medlem sedan aug. 2000431 inlägg
#10

Detta är en gammal tråd :-Q
Men jag skriver vidare än då för jag har ej fått detta att funka!!
Min kod ser ut så här:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.Mappath("../db/hyhhjkldhjkhjk34.mdb")

Addera = "Update [info] set [online] = date where [sessionsid] = '" & session.sessionid & "'"

Connect.Execute(Addera)

connect.close

men det funkar inte..
jag tycker att allt verkar se rätt ut...

------------------
Erki
http://www.tapiren.net - Din Community på Internet!

Medlem sedan aug. 2000431 inlägg
#11

Kan ingen....
Hjälpa mig?

------------------
Erki
http://www.tapiren.net - Din Community på Internet!

Medlem sedan aug. 20003 575 inlägg
#12

Jag har nog löst det.....
Använd onunload eller hur det nu stavas.... fast du måste du ju ha en frame på sidan nånstans... tyvvär....

------------------
http://sendmess.freesqlhost.com/login.asp

Medlem sedan aug. 2000431 inlägg
#13

Så har jag nu..
men det är inte så snyggt..
eller gör ej så mycket i och för sig.
men om nån kopplar ifrån utan att gå ur sidan så går det inte så bra :-(
Hur gör ex. Lunarstorm skunk mm?
De måste ju ha nått liknande i global.as?

------------------
Erki
http://www.tapiren.net - Din Community på Internet!

Medlem sedan aug. 20003 575 inlägg
#14

Hmmm, men du kan du ju dubbelkolla om om en användare har varit inloggad längre än en halvtimme så kan du ju göra ett script som kollar klocklan och jämför med den som står i databasen när användaren var senast inloggad.... men fortyfarande ha kvar det andra systemet för det är väl inte så ofta det händer....

egentligen skulle jag oxå vilja ha tag på ett riktigt sånt script.... dett tar ju en massa onödig kod.....

------------------
http://sendmess.freesqlhost.com/login.asp

Medlem sedan aug. 2000431 inlägg
#15

Hmmm..
Får väll göra så...
*snyft*

------------------
Erki
http://www.tapiren.net - Din Community på Internet!

Medlem sedan maj 20011 343 inlägg
#16

Finns det ingen som kan hjälpa erik??

Är i samma sitts själv! :(

------------------
/Jesper

Medlem sedan aug. 200010 inlägg
#17

Man kan ju oxå lösa det så som jag har gjort...
Man har en application-variabel som innehåller alla users som e online, å varje gång de går till en sida, eller online-listan (eller liknande) laddas om, så skrivs tidpunken in i variabeln, så sidan vet när de senast var aktiva..
om de sen inte varit aktiva på t ex 5 minuter så kan man ju ta bort dem från application-variabeln som innehåller alla som e online... och då är de plötsligt offline :p

Medlem sedan dec. 19996 721 inlägg
#18

Ja, det är ett bra sätt. Lämpligtvis använder man ett Dictionary-objekt för att spara infon.

Medlem sedan maj 20011 343 inlägg
#19

Malexin du har inte lust att visa med kod?

------------------
/Jesper

Medlem sedan aug. 2000431 inlägg
#20

Det låter bra..
Kan du visa lite kod? :-)
//Erik

262 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)