Avatar billede downunder Nybegynder
16. februar 2007 - 06:34 Der er 5 kommentarer

online_offline når bruger hopper af uden at logge ud

Hey Eksperter.

Jeg sidder og er ved at lave en online/offline liste på min side. Men må indrømme at jeg er ved at blive helt grå håret. Mit problem er når brugeren hopper af siden uden at logge ud. Så bliver min database ikke opdateret. Jeg har prøvt alt vil jeg sige næsten. Jeg prøver at bruge global.asa men virker ikke. Nogen som har et bud på noget.? Eller en side man kan tag lidt fra? Jeg er helt lost?

Hilsen Morten
Avatar billede fennec Nybegynder
16. februar 2007 - 08:36 #1
Du skal bruge global.asa.

SUB Session_OnEnd
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "connection"
  conn.execute("update dinTabel set online=false where id="& session("userID"))
END SUB

Du skal være opmærksom på at den først bliver eksikveret når session udløber. Standard 15 eller 20 min afhængig af IIS. Dvs at du vil først se brugeren er logget ud efter 15 min.

Der findes ikke et script, der kan "udlogge" en bruger med det samme, som virker 100%. Der findes script med en skjult iFrame, som reloader en side hver x sek (normalt omkring 30-60). Den side sætter så en "sidst set online". Når du tjekker online status, tjekker du så for, hvem der sidst er se inden for de angivet sekunder.
Avatar billede downunder Nybegynder
16. februar 2007 - 14:28 #2
jeg har lavet en global.asa fil men virker bare not
her er koden?


<script language="vbscript" runat="server">

    sub Application_OnStart
    end sub

    sub Application_OnEnd
    end sub

    sub Session_OnStart
    end sub

    sub Session_OnEnd

        Dim Conn
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Mode = 3
        DNS = "DRIVER={Microsoft Access Driver (*.mdb)};"
        DNS = DNS & "DBQ=" & Server.Mappath("login_2000.mdb")
'Database åben
        Conn.Open DNS
        Conn.Execute("Update user Set online='nej' where username = '" & Session("username") & "'")
        Conn.Close
        Set Conn = Nothing
    end sub

</script>
Avatar billede busschou Praktikant
17. februar 2007 - 08:50 #3
Du kan ikke benytte Server.Mapparth i Session_OnEnd
Læs evt min artikkel som også giver et fungerende eksempel
http://www.eksperten.dk/artikler/752
Med mindre du altså ønsker en løsniing som fennec foreslår med en iframe
Avatar billede downunder Nybegynder
17. februar 2007 - 09:15 #4
Okay det har jeg prøvet men kan ikke lige se hvordan jeg skal lave det med  Application_OnStart, måske du kunne hjælpe mig der?
Avatar billede fennec Nybegynder
19. februar 2007 - 10:26 #5
Det er busschou's "Gem connectionstrings som globale variable" del i artiklen du skal have fat i:

sub Application_OnStart
  Application("DNS") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("login_2000.mdb")
end sub

sub Session_OnEnd
Dim Conn
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Mode = 3
  Conn.Open Application("DNS")
  Conn.Execute("Update user Set online='nej' where username = '" & Session("username") & "'")
  Conn.Close
  Set Conn = Nothing
end sub
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