Online User system !
Jeg har et brugersystem hvor man skal logge ind for at få adgang til funktionerne! Jeg har forsøgt at lave et script, så man kan se hvem der er Online, og hvem der er Offline og hvornår de sidst har logget ind ! Men jeg kan kun få mit eget login til at vise at jeg er Online !Min global.asa ser således ud:
<Script Language=VBScript Runat=Server>
Sub Session_OnStart
End Sub
Sub Session_OnEnd
If Len(Session("bruger")) > 0 Then
Application.Lock
Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("brugernavn") & ",", "")
Application.UnLock
End If
End Sub
Sub Application_OnStart
Application.Lock
Application("OnlineUsers") = ","
Application.UnLock
End Sub
Sub Application_OnEnd
End Sub
</SCRIPT>
Og mit script sådan :
' --- 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
På loginsiden har jeg så sat AddOnlineUser ind, og det virker også fint hvis jeg bruger WriteOnlineUsers !
Men når jeg bruger følgende kode for at få udskrevet hvem der er Online og hvem ikke er, så virker det ikke !
sql = "Select brugere.brugernavn, brugere.email, log.dato, log.tid FROM brugere INNER JOIN log ON brugere.brugernavn = log.brugernavn Order by brugere.brugernavn"
rs.open sql, cn
Do while not rs.EOF
Dim status
If Session("brugernavn") = rs.fields("brugernavn") Then
Status = "Online"
Else
Status = "Offline"
End If
Dim tid
If Status = "Online" Then
tid = "Online nu!"
Else
tid = "D. "&rs.fields("dato")&" kl. "&rs.fields("tid")
End If
Response.Write "<tr><td width='100'><p>"&rs.fields("brugernavn")&"</p></td><td width='100'><a href='mailto:"&rs.fields("email")&"'>"&rs.fields("email")&"</a></td><td width='100'><p>"&status&"</p></td><td width='100'><p>"&tid&"</p></td></tr>"
rs.movenext
Loop
Nogen der kan hjælpe ?!
