Avatar billede emingos Nybegynder
01. maj 2002 - 19:09 Der er 48 kommentarer og
1 løsning

online users? global.asa osv..

hejsa eksperter jeg roder med lidt asp for tiden og ville gerne have så jeg kunne se hvor mange online users der er efter de har logget ind .. og alle som ikke har de ska stå som guest ie..
nu har jeg så kigget lidt på nogle scripts inde på activedeveloper.dk
og prøvet mig lidt frem.. og efter jeg ik ku få det til at virke satte jeg mig til at læse noget mere om det og der stod serveren sku genstartes før det virkede så jeg lagde iis in på min maskine sætter det op retter stien til databse osv.. men heller ik det hjælper .. s var det jeg ville høre om en af jer måske havde en god ide det er til mit domæne .. så man fik navnene på dem der er logget ind.. og antal online users.. nogen der kan hjælpe`???

måske komme med lidt links til noget jeg kan bruge..
ikke activedeveloper :)

mvh. emingos
Avatar billede steen_hansen Forsker
01. maj 2002 - 20:18 #1
Brugernavne skal jo trækkes ud, men antallet af on-line users:

Sæt det her ind i global.asa:

Sub Application_OnStart
    ' starter fra 0
    Application("ActiveUsers") = 0
End Sub

Sub Session_OnStart
    ' så er timeout'en på en session 20 minutter - kan ændres...
    Session.Timeout = 20
    Session("Start") = Now
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") + 1
    Application.UnLock
End Sub

Sub Session_OnEnd
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") - 1
    Application.UnLock
End Sub

I det dokument, der skal udskrive antallet:

<%
    Response.Write Application("ActiveUsers")
%>
Avatar billede emingos Nybegynder
01. maj 2002 - 20:36 #2
hmm jow.. men det virker bare ikke..
skal jeg <!--#include file="global.asa"--> i nogle filer ??
eller..
Avatar billede steen_hansen Forsker
01. maj 2002 - 20:39 #3
Næ, du skal ikke inkludere noget. Det virker på min egen side. Går det lige igennem...
Avatar billede steen_hansen Forsker
01. maj 2002 - 20:41 #4
Det burde virke:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
.
.
.
.
.
Sub Application_OnStart
    ' viser at vi starter fra 0 - kan ændres for evt snyd(!) ;o)
    Application("ActiveUsers") = 0
End Sub

Sub Session_OnStart
    ' så er timeout'en på en session 20 minutter - kan ændres...
    Session.Timeout = 20
    Session("Start") = Now
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") + 1
    Application.UnLock
End Sub

Sub Session_OnEnd
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") - 1
    Application.UnLock
End Sub
</SCRIPT>
Avatar billede steen_hansen Forsker
01. maj 2002 - 20:46 #5
Ovenstående er til global.asa

online.asp:

<%
    Response.Write Application("ActiveUsers")
%>

default.asp:

Online lige nu: <!--#include virtual="/includes/inc_online.asp"-->
Avatar billede steen_hansen Forsker
01. maj 2002 - 20:57 #6
Kan du slet ikke få det til at virke? Det virke fint hos mig.

Eneste ulempe er, at tallet forøges for hver browser man åbner på siden. Men det virker fint.
Avatar billede emingos Nybegynder
01. maj 2002 - 20:57 #7
The page cannot be displayed
There is a problem with the page you are trying to reach and it cannot be displayed.
Error Type:
Microsoft VBScript compilation (0x800A03F2)
Expected identifier
//global.asa, line 2, column 1
.
^
............
kan man ik få navnene på dem der er logged ind?
Avatar billede emingos Nybegynder
01. maj 2002 - 21:01 #8
fks. bruger (steen) logger ind med brugernavn steen og pass et eller andet .. så ska man se vilke navne der er logget ind?
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:07 #9
Ok, jeg skrev, at det kun viste antallet af online-users på din side. Det kan ikke vise, hvor mange af dine medlemmer, der er logget ind :o/
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:08 #10
...eller hvem, der er logget ind.
Avatar billede emingos Nybegynder
01. maj 2002 - 21:09 #11
http://activedeveloper.dk/julekalender/julegaver/whoson.asp det står her men jeg forstår det ik rigtigt...

quote " Den sidste procedure udskriver en liste over de navne som er logget på, den kaldes ligesom den anden.

Call WriteOnlineUsers()  "
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:17 #12
Øjeblik, kigger det ordentligt igennem...
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:19 #13
For lige at vende tilbage til online users (antallet af besøgende uden login):

Har du lavet det, som jeg viste dig? Det virker hos mig.

Kigger det andet igennem imens....
Avatar billede emingos Nybegynder
01. maj 2002 - 21:20 #14
hmm ok ja der jeg kan godt se den nu .. 1 online ,, men det er måske bare alle der er på siden? og ikke dem som er logged ind
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:23 #15
Det er det. Det var det, jeg i første omgang troede du efterlyste. Kigger lige igen på Active Developer.
Avatar billede emingos Nybegynder
01. maj 2002 - 21:25 #16
ohhhh okay..
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:27 #17
Hmm, jeg kan ikke rigtigt se problemet? Hvad er det, der går glt?
Avatar billede emingos Nybegynder
01. maj 2002 - 21:30 #18
jeg forstår ik hvad jeg skal med de forskellige sætninger
altså jeg har lavet global.asa men hvad med alt det andet

..

fks hvor skal jeg sætte Herunder har du to procedurer samt en funktion som giver dig forskellige muligheder. Proceduren AddOnlineUser kaldes når brugeren har logget sig på

Call AddOnlineUser()
Skal du have tallet af online brugere kan dette gøres med funktionen CountOnlineusers, f.eks.

Response.Write CountOnlineUsers()
Den sidste procedure udskriver en liste over de navne som er logget på, den kaldes ligesom den anden.

Call WriteOnlineUsers() .. hen ???
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:38 #19
Ser din global.asa sådan her ud:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
Application.Lock
Application("OnlineUsers") = ","
Application.UnLock



Her står der en masse andet i din global.asa



Sub Session_OnEnd
If Len(Session("UserName")) > 0 Then
    Application.Lock
    Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "")
    Application.UnLock
End If
End Sub
</SCRIPT>
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:41 #20
Ser din global.asa sådan her ud:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
  Application.Lock
  Application("OnlineUsers") = ","
  Application.UnLock
End Sub


Her står der en masse andet i din global.asa



Sub Session_OnEnd
If Len(Session("UserName")) > 0 Then
  Application.Lock
  Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "")
  Application.UnLock
End If
End Sub
</SCRIPT>
Avatar billede emingos Nybegynder
01. maj 2002 - 21:44 #21
jeg har både prøvet med det der står på siden og det du gavmig nu ser den sådan her ud..

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
    ' viser at vi starter fra 0 - kan ændres for evt snyd(!) ;o)
    Application("ActiveUsers") = 0
End Sub

Sub Session_OnStart
    ' så er timeout'en på en session 20 minutter - kan ændres...
    Session.Timeout = 20
    Session("Start") = Now
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") + 1
    Application.UnLock
End Sub

Sub Session_OnEnd
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") - 1
    Application.UnLock
End Sub
</SCRIPT>
Avatar billede emingos Nybegynder
01. maj 2002 - 21:45 #22
hvis du ved hvordan det script virker så bare sig hvor de forskellige ting ska hen..
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:50 #23
Ok, glem ALT om hvad jeg startede med at give dig. Sæt først din global.asa op på denne måde:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
  Application.Lock
  Application("OnlineUsers") = ","
  Application.UnLock
End Sub


Her står der en masse andet i din global.asa



Sub Session_OnEnd
If Len(Session("UserName")) > 0 Then
  Application.Lock
  Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "")
  Application.UnLock
End If
End Sub
</SCRIPT>
Avatar billede emingos Nybegynder
01. maj 2002 - 21:51 #24
yes...?
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:53 #25
I dit ASP-dokument (ikke global.asa) skriver du flg. øverst:

<%
' --- procedure til at tilføje en online bruger ---
Sub AddOnlineUser()
    Application.Lock
    Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","
    Application.UnLock
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
%>
Avatar billede emingos Nybegynder
01. maj 2002 - 21:54 #26
det er jo det samme som står på siden.. tro mig det virker ik
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:54 #27
I dokumentet, hvor du vil have angivet antallet, skriver du:

<%
Response.Write CountOnlineUsers()
%>
Avatar billede emingos Nybegynder
01. maj 2002 - 21:55 #28
ikke på den måde ivertfald..
Avatar billede emingos Nybegynder
01. maj 2002 - 21:55 #29
hmm.. ok nu tror jeg , jeg ved hvad du mener
Avatar billede steen_hansen Forsker
01. maj 2002 - 21:57 #30
Du har oprettet formularen, hvor brugeren skal angive brugernavn password?
Avatar billede emingos Nybegynder
01. maj 2002 - 21:58 #31
hm.. jamen I dit ASP-dokument (ikke global.asa) skriver du flg. øverst:
.. vilket asp dokument.. ska det includes osv.. du må give noget forklaring??
Avatar billede emingos Nybegynder
01. maj 2002 - 21:59 #32
nej det er skrevet i en database,... senere laver jeg en add form sjov.. tingest
Avatar billede steen_hansen Forsker
01. maj 2002 - 22:00 #33
Du kan kun lave det i ASP (Active Server Pages). Dvs. at dit dokument skal have filtype-betegnelsen ASP.

Eksempel: onlineusers.asp

Du kan ikke lave det i f.eks. HTM, det skal være ASP
Avatar billede emingos Nybegynder
01. maj 2002 - 22:02 #34
ja jeg ved godt man kun kan lave det i asp ik det jeg spurgte om.. men hvor kommer det ind i billedet... ska det includes eller .. nu virker det slet ik. står bare 0 ...


hmmmmmmm
Avatar billede emingos Nybegynder
01. maj 2002 - 22:06 #35
og hvad ska jeg bruge det her til... det skal vel også ind i den fil man logge rind i?

Herunder har du to procedurer samt en funktion som giver dig forskellige muligheder. Proceduren AddOnlineUser kaldes når brugeren har logget sig på

Call AddOnlineUser()
Skal du have tallet af online brugere kan dette gøres med funktionen CountOnlineusers, f.eks.

Response.Write CountOnlineUsers()
Den sidste procedure udskriver en liste over de navne som er logget på, den kaldes ligesom den anden.

Call WriteOnlineUsers()
Avatar billede steen_hansen Forsker
01. maj 2002 - 22:08 #36
Nej, det skal ikke inkluderes, det skal du bare skrive:

<table ......>

<%
Response.Write "<tr><td colspan=""2"">" & "On-line lige nu:" & "</td></tr>"
Response.Write "<tr><td width=""50%"" align=""top"">" & CountOnlineUsers() & "</td>"
Response.Write "<tr><td width=""50%"">" & WriteOnlineUsers() & "</td></tr>"
%>

</table>

Nu bliver jeg i tvivl, jeg synes snart vi har været langt omkring :o) Prøv det lige af først.
Avatar billede emingos Nybegynder
01. maj 2002 - 22:11 #37
husk at bruge '' istedet for ""
.. jeg har prøvet atlt du har skrevet og intet virker ..
Avatar billede emingos Nybegynder
01. maj 2002 - 22:13 #38
nope det virker ik
Avatar billede steen_hansen Forsker
01. maj 2002 - 22:14 #39
Nej, du skal skrive <td width=""50%"">

og ikke

<td width="50%">
Avatar billede emingos Nybegynder
01. maj 2002 - 22:15 #40
<td width='50%'>
Avatar billede emingos Nybegynder
01. maj 2002 - 22:15 #41
men kan det table ik være lige meget?
Avatar billede emingos Nybegynder
01. maj 2002 - 22:16 #42
Technical Information (for support personnel)

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'CountOnlineUsers'
/main.asp, line 5


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Page:
GET /main.asp
Avatar billede steen_hansen Forsker
01. maj 2002 - 22:16 #43
Hvis dine brugere ligger i en database, skal du have en database-connection. Har du det?
Avatar billede emingos Nybegynder
01. maj 2002 - 22:17 #44
det virker ikke med eller uden table..
Avatar billede emingos Nybegynder
01. maj 2002 - 22:18 #45
ja på min login.asp
Avatar billede steen_hansen Forsker
01. maj 2002 - 22:22 #46
Ok, men det er ikke nok. Du skal jo overføre variablerne (dine brugere). En database-connection i din main.asp er nødvendig. main.asp er det dokument, som skal udskrive brugerne?

emingos, jeg er træt og kan ikke samle tankerne nu. Jeg vrøvler sikkert også nu. Skal vi kigge på det i morgen?
Avatar billede emingos Nybegynder
01. maj 2002 - 22:27 #47
jow nu for du lige dine points du ha hjulpet mig godt på vej det kan godt værejeg lige spørge engang til .. :)

men tak for hjælpen ivertfald
Avatar billede emingos Nybegynder
01. maj 2002 - 22:28 #48
sov godt
Avatar billede steen_hansen Forsker
01. maj 2002 - 22:29 #49
Det var for hurtigt. Men tak for point. Og i lige måde. Vi kigger på det i morgen.
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