Avatar billede cotus Nybegynder
11. juni 2002 - 13:51 Der er 21 kommentarer og
1 løsning

Hvordan?

Jeg har det her Online-users-system, som når man logger ind, sætter brugerStatus i tabellen bruger til 'online' - men hvis man nu IKKE klikker på logout.asp, så bliver den ved med at tælle en som online - hvad gør jeg? En bekendt mente, at jeg skulle bruge noget global.asa?????

/cotus
Avatar billede psyclown Nybegynder
11. juni 2002 - 13:54 #1
du kan jo bare bruge Session.Timeout f.eks. på 60, så sletter den automatisk alle sessions efter 60 min...mener der er i minuter.
Avatar billede tmceu Praktikant
11. juni 2002 - 13:55 #2
Ja det er meget fint, men for at det skal få nogen effekt i databasen, skal du lave en funktion i global.asa's Session_OnEnd, men hvis det er en Access database, kan du efter min mening glemme alt
Avatar billede gryn Nybegynder
11. juni 2002 - 13:55 #3
Avatar billede keysersoze Ekspert
11. juni 2002 - 13:57 #4
ja - brug global.asa...

i Sub session_onend skal du køre det du normalt ville køre ved alm logout
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:08 #5
tmceu > Jeg har lige lavet et online-bruger system med en access database, så det tror jeg ikke heeelt du har ret i :)
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:11 #6
i global.asa skriver du:
sub session_onend
  conn.execute("update users set status = 'offline' where name = '"&session("Name")&"'")
end sub

-------

I dit login-script skriver du:

NavneVariabel = request("Navn") 'eksempelvis fra en Login-form...
session("Name") = NavneVariabel

Så bliver navnet slettet
Avatar billede cotus Nybegynder
11. juni 2002 - 14:12 #7
Skal jeg altså bare lave en fil der hedder global.asa, og lægge den HVOR?
Avatar billede psyclown Nybegynder
11. juni 2002 - 14:13 #8
han mener nok direkte timeout med access...altså hvis man ikke trykker på logout, ligesom du vil have det.
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:14 #9
I roden af din webside (/)
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:14 #10
I toppen af global.asa skriver du session.timeout = antalminutter.
ex.
session.timeout = 10
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:15 #11
Hvis man så ikke trykker på sign out bliver ens status ændret til offline efter 10 minutter
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:16 #12
Ups, det skal stå mellem sub session_onstart :)
Sub Session_OnStart
    Session.Timeout = 10
end Sub
Avatar billede tmceu Praktikant
11. juni 2002 - 14:17 #13
gangster >> så er du en af de heldige :-) i livet uden for Eksperten, er det almindeligt kendt, at der er store problemer med at anvende Access databaser i Session_OnEnd, uanset om det er DSN eller DSN-less og uanset om det er 97, 2000 og 2002. Der er til gengæld aldrig problemer med eks. MySQL og SQL Server.

Jeg har lavet min egen uvidenskabelige test baseret på mange af de problemer jeg har læst om med dette og har aldrig fået Access til at virke, hvorimod der aldrig er problemer med de øvrige.

Til det sidste skal det dog bemærkes, at der på IIS4 er et generelt problem med Session_OnEnd, da den kun kører i 95-97% af de tilfælde hvor sessionen timer ud. Dette skulle eftersigende være løst i IIS5 og jeg har endnu aldrig oplevet, at det ikke skulle være løst.

Læg mærke til, at jeg skriver "efter min mening", for i denne IT verden, er der aldrig nogen regel uden undtagelse, så jeg har lært ikke ret tit at sige "det KAN ikke lade sig gøre".

Men som sagt, mine personlige erfaringer sammenholdt med hvad der sker "ude i verden", får mig til at konkludere at man ikke skal satse hele butikken på at det virker.
Avatar billede cotus Nybegynder
11. juni 2002 - 14:19 #14
Skal der <%  %> rundt om det i global.asa?

Når jeg går på FTP kan jeg starte med at vælge to mapper: db og wwwroot - skal den ligger HER eller i wwwroot?

Er det her rigtigt?

<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mode/db/community.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnectString

Sub Session_OnEnd
    Session.Timeout = 10
    Conn.Execute("update users set status = 'offline' where name = '"&session("Name")&"'")
End Sub

Conn.Close
Set Conn = Nothing
%>
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:21 #15
Nej i stedet for <% skal det være:
<script language="vbscript" runat="server">
og istedet for %> skal det være:
</script>
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:23 #16
Min global.asa:
<script language="vbscript" runat="server">
Sub Session_OnStart
    Session.Timeout = 10
end Sub

Sub Session_OnEnd
    set myConn = Server.CreateObject("ADODB.Connection")
    conStr = "DRIVER={Microsoft Access Driver (*.mdb)};"
    conStr = conStr & "DBQ=f:\din\mappe\din_database.mdb"

    myConn.Open conStr
                SQL = "update users set status = 'offline' where name = '"&session("Name")&"'
        myConn.execute(SQL)
    myConn.Close
    set myConn = Nothing
End Sub
</script>
Avatar billede cotus Nybegynder
11. juni 2002 - 14:25 #17
<script language="vbscript" runat="server">
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mode/db/community.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnectString

Sub Session_OnEnd
    Session.Timeout = 10
    Conn.Execute("update bruger set brugerStatus = 'offline' where brugerNavn = '"&session("mode")&"'")
End Sub

Conn.Close
Set Conn = Nothing
</script>
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:27 #18
Umiddelbart ser jeg ingen fejl i din global.asa...
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:28 #19
Hvis du har husket at sætte session("mode") i dit login-script skulle der ikke være nogen problemer...
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:28 #20
tager mig lige en rygepause, tilbage om 5 min. :)
Avatar billede cotus Nybegynder
11. juni 2002 - 14:32 #21
Jeg brugte lige dit script, og fandt ud af, at du mangler en " til sidst i din db-connection, men nu BURDE det fungere... vent lige 10 min., og så ser jeg om det funker! :D

/cotus
Avatar billede jeg_var_gangsta Nybegynder
11. juni 2002 - 14:41 #22
Nårh ja, det gør jeg også :)
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