Avatar billede gatez Nybegynder
23. juni 2001 - 16:58 Der er 16 kommentarer og
1 løsning

Online User.....

Hejsa...

Jeg er ved at lave et script der kan hvis om der er over 20 online bruger for så skal de blive sendt til en adresse ellers skal de til en anden adresse.

Min kode ser sådan ud og fejlen ligger inden for de sidste 15 liner:

----KODE START----

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

strActiveUserList = Application(\"ActiveUserList\")

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
End If

End Sub
%>

<%
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
%>

<%

\'Det virker fint
Call LogActiveUser()
Call ActiveUserCleanup()

\'Det virker ikke
if request & Application(\"ActiveUsers\") & > 20 then
    response.redirect(\"too-many-user.asp\")
Else
response.redirect(\"ok.asp\")
End If

\'Det virker fint
Response.Write \"Der er \" & Application(\"ActiveUsers\") & \" online brugere.\"

%>

----KODE SLUT----

Hjælpe :)
Avatar billede food4u.dk Nybegynder
23. juni 2001 - 17:01 #1
Hvad siger den når du køre det?
Avatar billede gatez Nybegynder
23. juni 2001 - 17:03 #2
Jamen den vil ikke vise siden... Hvis jeg skriver sådan:

if request (\"ActiveUsers\") > 20 then
    response.redirect(\"too-many-user.asp\")
Else
response.redirect(\"ok.asp\")
End If


Så går den ind på ok.asp hele tiden lige meget hvor mange bruger der er.

Jeg ved ikke hvorfor det ikke virker som det skal...
Avatar billede food4u.dk Nybegynder
23. juni 2001 - 17:05 #3
hvad hvis du siger:
ActiveUsers = request (\"ActiveUsers\")

if ActiveUsers > 20 then
    response.redirect(\"too-many-user.asp\")
Else
response.redirect(\"ok.asp\")
End If
Avatar billede gatez Nybegynder
23. juni 2001 - 17:08 #4
Så går den ind på ok.asp lige meget hvor mange bruger der. Jeg har lige prøvet at ænder til kun 1 bruger og gik ind med 4 bruger, så viser den hele tiden ok.asp

Det er mærkligt...
Avatar billede food4u.dk Nybegynder
23. juni 2001 - 17:09 #5
det må man sige

prøv med => istedet for kun >
Avatar billede agony Nybegynder
23. juni 2001 - 17:11 #6
hvad med at gøre det sådan her i din global.asa:

<script language=\"vbscript\" runat=\"server\">

sub Application_OnStart

set Application(\"online\") = 0

end sub

sub Application_OnEnd


end sub



sub Session_OnStart

Application.Lock
Application(\"online\") = (Application(\"online\") + 1)
Application.Unlock

end sub

sub Session_OnEnd

Application.Lock
Application(\"online\") = (Application(\"online\") - 1)
Application.Unlock
end sub
</script>




og så i din index.asp tilføje dette:

if (application(\"online\")) > 20 then
    response.redirect(\"too-many-user.asp\")
Else
response.redirect(\"ok.asp\")
End If


?????????????????????? en mulighed
Avatar billede gatez Nybegynder
23. juni 2001 - 17:12 #7
Virker heller ikke...

Prøv http://yepss.dk/test/

Den står til at skulle gå til too-many-user.asp hvis der er mere end 1 bruger online...
Avatar billede gatez Nybegynder
23. juni 2001 - 17:13 #8
--> Agony

Mit ASP script køre uden en global.asa
Avatar billede agony Nybegynder
23. juni 2001 - 17:13 #9
lille fejl i:

if application(\"online\") > 20 THEN
Avatar billede gatez Nybegynder
23. juni 2001 - 17:13 #10
Det er defor koden er så lang
Avatar billede agony Nybegynder
23. juni 2001 - 17:14 #11
kan du ikke få din en sådan ???
Avatar billede food4u.dk Nybegynder
23. juni 2001 - 17:14 #12
Kan det være fordi din ActiveUser af en eller anden grund ikke er gemt som tal?
Avatar billede gatez Nybegynder
23. juni 2001 - 17:16 #13
if application(\"online\") > 20 THEN

Det virker.... Tak
Avatar billede agony Nybegynder
23. juni 2001 - 17:17 #14
bruger du PWS eller IIS ????
Avatar billede gatez Nybegynder
23. juni 2001 - 17:17 #15
Sådan skulle det se ud:

if application(\"ActiveUsers\") > 20 THEN
    response.redirect(\"too-many-user.asp\")
Else
response.redirect(\"ok.asp\")
End If
Avatar billede gatez Nybegynder
23. juni 2001 - 17:17 #16
IIS
Avatar billede agony Nybegynder
23. juni 2001 - 17:20 #17
jeg har tidligere haft problemer (min egen skyld) når jeg har lavet sådanne antal online ting. Glemte at genstarte min server når jeg hade rette i koden så den talte forkert :-|
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