Avatar billede dakar2004 Nybegynder
16. november 2006 - 13:22 Der er 7 kommentarer

problem med online og offline bruger script

Jeg har et problem med at få følgende script til at fungere:
<%
Sub LogActiveUser

Dim strActiveUserList
Dim intUserStart, intUserEnd
Dim strUser
Dim strDate

strActiveUserList = Application("ActiveUserList")

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

End Sub
%>

men sjovt nok så virker dette script udemærket:
<%
if session("brugernavn") = "" then Response.Redirect("login.asp?error=Du ikke logget ind") end if
%>

som i kan se bruger jeg samme session, da det er den session som brugerne udregnes efter, men vis jeg bruger Session.Brugernavn i det øverste script får jeg bare følgende fejl:

http://boingz.dk/fejl.jpg

håber der er en der kan få dette til at fungere for mig...
Avatar billede keysersoze Ekspert
16. november 2006 - 13:28 #1
hvori ligger det sjove? Der er da stor forskel på session("brugernavn") og Session.Brugernavn?

Hvis du ændrer alle dine Session.Brugernavn til session("brugernavn") bør det rette fejlen...
Avatar billede dakar2004 Nybegynder
16. november 2006 - 13:33 #2
det har jeg godtnok forsøgt og den viser at der er 1 online hvor der slet ikke skulle være nogle...
Avatar billede dakar2004 Nybegynder
16. november 2006 - 13:34 #3
jeg har godtnok også et cleanup script som ser sådan her ud, men det sletter ikke det 1 tal som ikke bør være der:

Cleanup script:

<%
Sub ActiveUserCleanup
Dim ix
Dim intUsers
Dim strActiveUserList
Dim aActiveUsers
Dim intActiveUserCleanupTime
Dim intActiveUserTimeout

intActiveUserCleanupTime = 1
intActiveUserTimeout = 20

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 keysersoze Ekspert
16. november 2006 - 13:40 #4
hvis ikke det sletter det forventede og der ingen fejl opstår må du prøve at løbe scriptet igennem og se præcist hvor det gør galt - udskriv nogle hjælpevariabler undervejs så du kan se hvad goregår.
Avatar billede dakar2004 Nybegynder
16. november 2006 - 13:47 #5
jamen den melder ingen fejl den viser bare at der er en online selvom der ingen brugere er oprettet i systemet og mit login tjek system fortæller mig at min Session("brugernavn") er tom, og hvordan udskriver jeg hjælpevariabler?
Avatar billede keysersoze Ekspert
16. november 2006 - 13:51 #6
response.write "test"
Avatar billede keysersoze Ekspert
10. december 2006 - 02:23 #7
kommet videre?
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