Avatar billede gatez Nybegynder
20. december 2003 - 15:22 Der er 19 kommentarer og
1 løsning

Kørsel af script

Hejsa!

Jeg har brug for en funktion på min hjemmeside som køre et script når brugeren forlader min side...  Kan man det ?
Altså så snart en bruger lukker browseren eller skifter url så skal den lige køre et sidste asp script før siden forlades.

Jeg tænkte på at lave det i et popup vindu som åbnes når siden forlades, køre scriptet og lukke vinduet igen automatisk, men er der ikke en anden læsning ??
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:25 #1
Nej. Du kan ikke bruge onUnload til at udføre asp kode.
Og mht popup.. hvis brugeren har en popup-killer/blocker (som de fleste har), kommer popup'en overhovedet ikke frem. Det betyder at det sidste asp script ikke bliver udført.
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:27 #2
Popup'en ville ellers være en ok løsning til et logud-script.. men nej, det kan man ikke.
Så, hvis det er et logud-script, anbefales det at du bruger en session.timeout = X, hvor X er antal minutter uden aktivitet (brugerens side).
Avatar billede gatez Nybegynder
20. december 2003 - 15:30 #3
--> thesurfer

Ja det er et logout script som skal udføres...
Men jeg har prøvet session... Jeg syntes dog ikke det virker helt som det skal... Den er ik altid til at regne med 100%.
Jeg håbede bare der var en anden løsning... Da jeg har set fx. Dating.dk bruger en anden mulighed uden popup...
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:37 #4
Sessions slettes når du lukker vinduet.. dvs, når du så åbner browseren igen, er du allerede logget ud.
Du skal bare checke om f.eks. Session("login") = "ja", ved besøg på dine beskyttede sider.
Avatar billede gatez Nybegynder
20. december 2003 - 15:40 #5
Okay, når en bruger logger ind sættes Session("brugernavn") = "XXX"  men hvordan tjekker jeg har mange Session("brugernavn") der køre på serveren ??
Hvis jeg fx. vil udskrive en liste over de personer som er logget ind samt et antal ?
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:44 #6
Det er et helt andet script.. ser lige om jeg kan finde det..
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:45 #7
Avatar billede gatez Nybegynder
20. december 2003 - 15:45 #8
Lige nu bruger jeg global.asa til denne funktion... Men det virker bare ikke... Tit og ofte bler nogle bruger ikke slettet fra online listen.

Koden ses herunder:

<script language=VBScript runat=Server>
Session.Timeout = 20


Sub Application_OnStart
Application.Lock
Application("OnlineUsers") = ","
Application.UnLock
Application("BrugereOnline") = 0
End Sub

Sub Session_OnStart
Application("BrugereOnline") = Application("BrugereOnline") + 1
End Sub

Sub Session_OnEnd
Application("BrugereOnline") = Application("BrugereOnline") - 1

If Len(Session("brugernavn")) > 0 Then
    Application.Lock
    Application("OnlineUsers") = Replace(Application("OnlineUsers"), "," & Session("brugernavn") & ",", ",")
    Application.UnLock
End If

End Sub

' --- procedure til at tilføje en online bruger ---
Sub AddOnlineUser()
  if inStr(1,Application("OnlineUsers"),"," & Session("brugernavn") &",")=0 then
    Application.Lock
    Application("OnlineUsers") = Application("Onlineusers") & Session("brugernavn") & ","
    Application.UnLock
  End if
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

Sub DelOnlineUser()
    Application.Lock
    Application("Onlineusers") = ","
    Application.UnLock
End Sub
</script>
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:46 #9
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:47 #10
Er det ikke den fra activedeveloper.dk?:
http://activedeveloper.dk/julekalender/julegaver/whoson.asp
Avatar billede gatez Nybegynder
20. december 2003 - 15:48 #11
Problemmet er jeg kun vil vide hvor mange bruger som er logget ind... Altså hvor mangn Session("brugernavn") der køre på serveren + at jeg vil kunne lave en liste over den bruger som er online.
Avatar billede gatez Nybegynder
20. december 2003 - 15:49 #12
Jo den er fra activedeveloper.dk - Men den virker ikke... eller dvs. at funktionen der skal fjerne bruger når han forlader side virker slet ikke...
Avatar billede gatez Nybegynder
20. december 2003 - 15:54 #13
Hmmm... hvordan gør Jubii Chat & Dating.dk for at kunne vise hvilke bruger som er online ??
Så vil jeg nemlig også lave det ;)
Avatar billede thesurfer Nybegynder
20. december 2003 - 15:56 #14
Det skulle mit link hos activedeveloper.dk gerne gøre.
Avatar billede gatez Nybegynder
20. december 2003 - 15:58 #15
Det er den jeg bruger nu:
http://activedeveloper.dk/julekalender/julegaver/whoson.asp

Den virker nemlig ikke... Prøv at kig på siden der står det her et sted:
Denne kode fjerner brugeren fra den kommasepareret liste som vi gemmer i Applikations objektet (den samme kan du bruge i din kode hvis du har en logoff knap).

Men den kode som han brskriver der mangler...
Avatar billede thesurfer Nybegynder
20. december 2003 - 16:01 #16
De er de her linier han referer til:
If Len(Session("UserName")) > 0 Then
    Application.Lock
    Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "")
    Application.UnLock
End If

Den erstatter brugernavnet (f.eks. "gatez") med "" (ingenting), og det betyder at "gatez" ikke længere er i listen.
Avatar billede gatez Nybegynder
20. december 2003 - 16:04 #17
Okay det prøver jeg ;)
Men jeg har brugt det før og jeg syntes ikke det virker 100% men jeg prøver igen.
Smid et svar :) Jeg blev da en hel del klogere ;)
Avatar billede thesurfer Nybegynder
20. december 2003 - 16:06 #18
Et svar er smidt.. er glad for at du er blevet klogere :)
Avatar billede gatez Nybegynder
20. december 2003 - 16:08 #19
Og tak for hjælpen...
Avatar billede thesurfer Nybegynder
20. december 2003 - 16:18 #20
Takker for points.
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