Men nu mangler jeg kun 1 ting som ikke er vist her på siden... Det er når en bruger logger af så skal den fjerne brugeren fra onlinelisten men hvordan ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Mit problem er det at når en bruger logger ind vises han som online på onlinelisten og det bliver han ved med i 24 timer tror jeg...
Her kan du se min kode i global.asa så kan du se om du har nogle idé... Jeg har selv prøvet med "Sub DelOnlineUser()" men det virker ikke...
<script language=VBScript runat=Server> Sub Application_OnStart Application.Lock Application("OnlineUsers") = "," Application.UnLock End Sub
Sub Session_OnEnd
If Len(Session("brugernavn")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("brugernavn") & ",", "") Application.UnLock End If
End Sub
' --- procedure til at tilføje en online bruger --- Sub AddOnlineUser() Application.Lock Application("OnlineUsers") = Application("Onlineusers") & Session("brugernavn") & "," Application.UnLock End Sub
' --- funktion som retunerer antallet af online brugere --- Function CountOnLineUsers() Dim arrUsers ' --- lav et array med online brugere --- arrUsers = Split(Application("Onlineusers"), ",") ' --- antallet af online brugere er altid størrelsen på arrayet -1 --- CountOnLineUsers = UBound(arrUsers) - 1 End Function
' --- procedure til at udskrive online brugere --- Sub WriteOnLineUsers() Dim arrUsers Dim n ' --- lav et array med online brugere --- arrUsers = Split(Application("Onlineusers"), ",") ' --- udskriv liste --- For n = 1 To UBound(arrUsers) -1 Response.Write(arrUsers(n) & "<br>") Next End Sub
Sub DelOnlineUser() Application.Lock Application("arrUsers") = Application("arrUsers") -1 Application.UnLock End Sub
Når en bruger logger ind kalder jeg "Sub AddOnlineUser()" den tilføjer brugerens brugernavn til online listen via global.asa så må man da også kunne fjerne brugeren brugernavn fra listen igen når han logger ud... Tror du ik ?
Det er i denne del/function en brugers brugernavn fjernes:
Sub Session_OnEnd
If Len(Session("brugernavn")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("brugernavn") & ",", "") Application.UnLock End If
Hvis jeg logger ind nu... Så viser den mig som online... Hvis jeg logger ud og logger ind igen så viser den mig som online 2 gange osv... Det er det jeg helst vil ungå hvis man kan...
Hvis du vil lave en log-out function altså som den på eksperten som hedder "Log ud" så skal koden bland andet være, dette så brugernanvet fjernes.:
If Len(Session("brugernavn")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("brugernavn") & ",", "") Application.UnLock End If
Så laver du bare din AddOnlineUser om til dette så den lige tjekke om brugernavnet findes:
Sub AddOnlineUser() if inStr(1,Application("OnlineUsers"),"," & Session("brugernavn") &",")=0 then Application.Lock Application("OnlineUsers") = Application("Onlineusers") & Session("brugernavn") & "," Application.UnLock End if End Sub
Hvis man har to brugere (tilfældige navne): 1 peter 2 hanspeter
Hvis de begge er online står der i listen ",peter,hanspeter," Så logger peter ud så fjerner den "peter," i strengen, ;) kan du så se hvem der er online? Det er en helt nu bruger som hedder hans og strengen indeholder ",hans,"
Det er en helt nu bruger som hedder hans og strengen indeholder ",hans," ups det endag endnu være end det for den fjerner det sidste , så der står ",hans". Så hvis ole logger ind står der online brugere er ",hansole,"
Jeg ville gætte på så lang tid som er sat i Session.TimeOut (default timeout er vist 15-20 minutter det kan jeg ikke helt huske). Men jeg er ikke helt sikker, for hvis denne Session("brugernavn") er blevet sat tom når Session_OnEnd kaldes vil en bruger forblive i onlinelisten indtil serveren restartes eller du laver en "Log Ud" knap om man kan trykke på.
Nej session skulle ud hvis brugeren har være inaktiv i længere tid. Præsis som her på eksperten, man kan side flere time online går man ned og spiser aftens man og kommer tilbage er man logget ud. Det kan så ikke ses hvis man har har sat den til autologin ;)
Nu har jeg sat Session.Timeout = 20 i toppen af min global.asa så håber jeg det virker :-)
1000 Tak for dine svar !!
Synes godt om
Ny brugerNybegynder
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.