Avatar billede jacand Nybegynder
18. januar 2005 - 16:47 Der er 1 løsning

Bruger online system

Er der lige en der kan hjælpe mig med nedenstående kode.
jeg kan ikke lige få den til at hente Session.SessionID ud når den når intActiveUserTimeout.
Det den skal er at, sætte online = 0 i tabellen bruger når den når intActiveUserTimeout.

Sub LogActiveUser
Dim strActiveUserList
Dim intUserStart, intUserEnd
Dim strUser
Dim strDate

strActiveUserList = Application("ActiveUserList")
'response.write strActiveUserList
If Instr(1, strActiveUserList, Session.SessionID) > 0 Then
Application.Lock
intUserStart = Instr(1, strActiveUserList, Session.SessionID)
intUserEnd = Instr(intUserStart, strActiveUserList, "|")
strUser = Mid(strActiveUserList, intUserStart, intUserEnd - intUserStart)
strActiveUserList = Replace(strActiveUserList, strUser, Session.SessionID & ":" & Now())
Application("ActiveUserList") = strActiveUserList
Application.UnLock
Else
Application.Lock
Application("ActiveUsers") = CInt(Application("ActiveUsers")) + 1
Application("ActiveUserList") = Application("ActiveUserList") & Session.SessionID & ":" & Now() & "|"
Application.UnLock

if sessionbrugerlogin = "jada" then
Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM bruger Where brugernr = '" & sessionbrugernr & "'"
rs.Open SQL, strDSN, 1, 3
rs("online") = 1
rs.update
rs.close

SQL = "SELECT * FROM bruger_online Where (id=0)"
rs.Open SQL, strDSN, 1, 3
rs.addnew
rs("sid") = Session.SessionID
rs("brugerid") = sessionbrugernr
rsm.update
rs.close
set rs = nothing
end if

End If

End Sub
Sub ActiveUserCleanup
Dim ix
Dim intUsers
Dim strActiveUserList
Dim aActiveUsers
Dim intActiveUserCleanupTime
Dim intActiveUserTimeout

intActiveUserCleanupTime = 1
intActiveUserTimeout = 2

If Application("ActiveUserList") = "" Then Exit Sub

If DateDiff("n", Application("ActiveUsersLastCleanup"), Now()) > intActiveUserCleanupTime Then

  Application.Lock
  Application("ActiveUsersLastCleanup") = Now()
  Application.Unlock

  intUsers = 0
  strActiveUserList = Application("ActiveUserList")
  strActiveUserList = Left(strActiveUserList, Len(strActiveUserList) - 1)

 
  aActiveUsers = Split(strActiveUserList, "|")

For ix = 0 To UBound(aActiveUsers)
  If DateDiff("n", Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), ":") + 1, Len(aActiveUsers(ix))), Now()) > intActiveUserTimeout Then
      aActiveUsers(ix) = "XXXX"
  Else
      intUsers = intUsers + 1

  End If
Next

strActiveUserList = Join(aActiveUsers, "|") & "|"
strActiveUserList = Replace(strActiveUserList, "XXXX|", "")

  Application.Lock
  Application("ActiveUserList") = strActiveUserList
  Application("ActiveUsers") = intUsers
  Application.UnLock

End If

End Sub
Avatar billede jacand Nybegynder
25. januar 2005 - 16:15 #1
vi lukker.
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