Mit script udsrkiver laaaaang liste(uendelig løkke)
Jeg arbejder med et script der skal vise hvor mange der er online på en side samt hvilket brugernavn de har valgt. det går sådan set ret godt de første 10 sek., men så går det galt.Jeg kan ikke gennemskue hvordan jeg løser mit \'løkke\': hver gang siden opdateres(det gør den automatisk hvert 15.sek.) så tilføjer den een mere til listen, dog uden at ændre på hvor mange der er online.
Her er scriptet:
<SCRIPT LANGUAGE=\"JavaScript\">
<!--
setTimeout(\"update()\",15000);
function update(){
document.location.href=\"inc_showonlineusers.asp\"
}
-->
</SCRIPT>
<%
If Session(\"Name\") = \"\" OR Request(\"Topic\") = \"\" Then
Name = \"Anonym\"
Topic = \"Common\"
Else
Topic = FilterTopic(Request(\"Topic\"))
Topic = \"Common\"
Name = Request.Cookies(\"MyGame\")(\"MyName\")
End If
%>
<!-- #include file=\"inc_onlineusers.asp\" -->
<%
Name = Request.Cookies(\"MyGame\")(\"MyName\")
Topic = session(\"Topic\")
If Not IsEmpty(Application(\"Users\")) Then
If IsArray(Application(\"Users\")) Then
uLen = UBound(Application(\"Users\"))
For I = 0 To uLen
If Application(\"Users\")(I) = Name Then
Exit For
End If
Next
Users = Application(\"Users\")
UsersGroup = Application(\"UsersGroup\")
NumOfUsers = UBound(Users)
ReDim Preserve Users(NumOfUsers)
ReDim Preserve UsersGroup(NumOfUsers)
\'Response.AppendToLog \"Number of users when \" & Name & \" entered: \" & NumOfUsers
Users(NumOfUsers-1) = Name
\'UsersGroup(NumOfUsers-1) = Topic
Application(\"Users\") = Users
Application(\"UsersGroup\") = UsersGroup
UsersIP = Application(\"UsersIP\")
UsersIdleTime = Application(\"UsersIdleTime\")
UsersTimeOn = Application(\"UsersTimeOn\")
ReDim Preserve UsersIP(NumOfUsers)
ReDim Preserve UsersIdleTime(NumOfUsers)
ReDim Preserve UsersTimeOn(NumOfUsers)
UsersTimeOn(NumOfUsers-1) = Now
UsersIdleTime(NumOfUsers-1) = 0
UsersIP(NumOfUsers-1) = Request.ServerVariables(\"REMOTE_ADDR\")
Application(\"UsersIP\") = UsersIP
Application(\"UsersTimeOn\") = UsersTimeOn
Application(\"UsersIdleTime\") = UsersIdleTime
Else
\'Response.AppendToLog \"Number of users when \" & Name & \" entered: \" & \"0 (Not Array)\"
ReDim Users(1)
ReDim UsersGroup(1)
Users(0) = Name
UsersGroup(0) = Topic
Application(\"Users\") = Users
Application(\"UsersGroup\") = UsersGroup
Redim UsersIP(1)
Redim UsersIdleTime(1)
Redim UsersTimeOn(1)
UsersTimeOn(0) = Now
UsersIdleTime(0) = 0
UsersIP(0) = Request.ServerVariables(\"REMOTE_ADDR\")
Application(\"UsersIP\") = UsersIP
Application(\"UsersTimeOn\") = UsersTimeOn
Application(\"UsersIdleTime\") = UsersIdleTime
End If
Else
\'Initialize Users Variable
Dim NewUsers()
Redim NewUsers(1)
Dim NewUsersGroup()
Redim NewUsersGroup(1)
NewUsers(0) = Name
NewUsersGroup(0) = Topic
Application(\"Users\") = NewUsers
Application(\"UsersGroup\") = NewUsersGroup
Dim NewUsersIP()
Redim NewUsersIP(1)
Dim NewUsersIdleTime()
Redim NewUsersIdleTime(1)
Dim NewUsersTimeOn()
Redim NewUsersTimeOn(1)
NewUsersTimeOn(0) = Now
NewUsersIdleTime(0) = 0
NewUsersIP(0) = Request.ServerVariables(\"REMOTE_ADDR\")
Application(\"UsersIP\") = NewUsersIP
Application(\"UsersTimeOn\") = NewUsersTimeOn
Application(\"UsersIdleTime\") = NewUsersIdleTime
End If
Session(\"Enter\") = True
Function FilterTopic(Topic)
Topic = Replace(Topic, \":\", \".\")
Topic = Replace(Topic, \"/\", \".\")
Topic = Replace(Topic, \"\\\", \".\")
FilterTopic = Topic
End Function
if application(\"usersonline\") = \"\" then
application(\"usersonline\") = 1
end if
\'*************************************************************
\' Hvor mange Brugere er online *
\'*************************************************************
For i = 1 to application(\"usersonline\")
if len(application(\"usersonline_\"&i)) then
if DateDiff(\"s\",application(\"usersonline_\"&i),Now) > timeout_sek then
application(\"usersonline_\"&i) = \"\"
application(\"userinfo_\"&i) = \"\"
else
usersonline = usersonline+1
end if
max_i = i
end if
next
application(\"usersonline\") = max_i
If max_i = \"1\" Then
\'Her skrives antallet af online brugere ud
response.write \"<br><font face=Verdana size=1 color=0000ff>There is \" & usersonline & \" gamer online.<br>\"
Else
response.write \"<br><font face=Verdana size=1 color=0000ff>There are \" & usersonline & \" gamers online.<br>\"
End If
\'*************************************************************
\' Hvad \"hedder\" brugerne der er online *
\'*************************************************************
Topic = Session(\"Topic\")
Application.Lock
If Not IsEmpty(Application.Contents(\"Users\")) Then
Users = Application(\"Users\")
Group = Application(\"UsersGroup\")
NumOfUsers = UBound(Users)
For I = 1 To max_i
\'If Topic = Group(I) Then
Response.Write \"\"
Response.Write \"<b>\" & Users(I) & \"</b></a><br>\"
Response.Write \" <small><b>IP:</b> \" & Application(\"UsersIP\")(I) & \"<br>\"
\'End If
Next
End If
Application.Unlock
%>
Det ville være rigtig rart hvis nogen kunne give et bud på HVOR det går galt og hvordan jeg løser den vildfarne løkke...
På forhånd tak
