---
title: "Visa vilka \"medlemmar\" som är online!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/52624-visa-vilka-medlemmar-som-är-online"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "jimpa"
published: "2002-09-08T20:06:33.000Z"
updated: "2002-10-04T13:57:58.000Z"
replies: 27
views: 949
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/52624-visa-vilka-medlemmar-som-är-online"
---

# Visa vilka "medlemmar" som är online!

_Sida 1 av 2._

## #1 — jimpa, 2002-09-08T20:06Z

Hej 

Söker efter ett redan färdigt script som visar vilka som är Online
Ungefär som här på webforum.
Är det någon som möjligen vet om det går att hitta det gratis någonstans?

Mvh Jimpa

Permalänk: https://www.webforum.nu/p/52624

## #2 — LarsG, 2002-09-08T20:18Z

Du kan ju börja med att söka i detta forum.

Permalänk: https://www.webforum.nu/p/778410

## #3 — jimpa, 2002-09-08T20:44Z

Nope :) 

Kan inte finna ett redan färdigt script som visar vilka som online i detta forum någon annan som vet?

Mvh Jimpa

Permalänk: https://www.webforum.nu/p/778429

## #4 — Quid, 2002-09-08T20:56Z

Jag tror knappast du kommera tt hitta något färdigt script som passar just till din sida, det är ju trots allt rätt många faktorer som måste stämma.

Men en lösning är ju att spara ett datum i database varje gång användaren gör något, och sen på "vilka är online"-sidan plocka ut dem vars tid inträffade för mindre än ca. 15 minuter sen. Det är ju dock en kraftkrävande metod.

Permalänk: https://www.webforum.nu/p/778431

## #5 — UnConed, 2002-09-08T21:44Z

Du kan ha en kolumn i en databas som heter t.ex OnlineStatus.
Sen varje gång de loggar in uppdaterar du den till t.ex 'Ja'
Och när de loggar du uppdaterar du den igen till t.ex 'Nej'
Sen kollar du bara vilka som är online genom att skriva ut från databasen.
Sql = "Select \* From Databaskolumn Where OnlineStatus = 'Ja'"

Permalänk: https://www.webforum.nu/p/778445

## #6 — jimpa, 2002-09-08T22:45Z

Jag hittade ett script [Här](http://www.2enetworx.com/dev/samples/memwhoson.asp)
Men får det inte att fungera riktigt då inte namnet på den inloggade skrivs. Utan det registraras som "Gäst"

Kanske någon kan hjälpa mig att hitta felet
Den feta texten i koden har jag ändrat gentemot orginalet som du finner i länken ovan.
Börjar med global.asa

```
[FONT=courier new]
<Object Runat="Server" Scope="application" ID="dOnlineUsers" ProgID="Scripting.Dictionary"></Object>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

sub Application_OnStart
    application("ServerStart") = now
end sub

[B]' Vad Betyder det Här !!!!!

function Decrypt(sText)
    'Replace with your own decrypt ;)
    Decrypt = sText
end function    

function adZero(sText)
    'Adds zeros to the beginning
    if isNull(sText) then exit function
    adZero = string(3 - len(sText), "0") & sText
end function

[/B]

Sub Session_OnStart

    'Session_OnStart is automatically called by the ASP Interpreter
    'when a new session starts. (Probably a new visitor)

    'TimeOut value determines the period in minutes when 
    'the session is assumed to be abandoned

    Session.TimeOut = 10

    'Get the current active users list
    sActiveUsersList = application("ActiveUsersList")
    
    'Get the new user name from the cookie
    'sNewUserName = Decrypt(request.cookies("devUserName"))
[B]  'Session MM_Username innehåller namnet på användaren
    sNewUserName = Decrypt(Session("MM_Username"))[/B]
   

    'If the visitor doesn't have a registered username, assign Guest(n) label
    if sNewUserName = "" then sNewUserName = "Gäst-" & AdZero(CInt(application("Visitors")))
    
    'Initial action time
    sLastActionTime = Time
    
    'User info consists of user name, last action time, and the page viewed
    sUserInfo = sNewUserName & "<|>" & sLastActionTime & "<|>" & sLastPageViewed

    'Add this user to our collection with SessionID being the key
    '(See the top of this file to see how dOnlineUsers object is initiated)
    dOnlineUsers.Add Session.SessionID, sUserInfo
    
    'Lock the application variable and update the contents
    application.lock
    'The number of active users
    application("ActiveUsers") = application("ActiveUsers") + 1
    'The number of visitors since last application reset
    application("Visitors") = application("Visitors") + 1
    
    'If the date is different than the previously stored date,
    'it means we passed midnight, so reset our "today" counters
    if application("TodaysDate") <> Date() then
        application("PageViewsToday") = 0
        application("VisitorsToday") = 0
    end if
    application("VisitorsToday") = application("VisitorsToday") + 1
    'Store the date
    application("TodaysDate") = Date()
    'Unlock and go
    application.unlock
    
End Sub

Sub Session_OnEnd
    'Session_OnEnd is automatically called by the ASP Interpreter
    'when the specified TimeOut period has passed after user's last action

    on error resume next

    'Remove this session from our collection
    dOnlineUsers.Remove Session.SessionID
    
    'And update the application variables
    application.lock
    application("ActiveUsers") = application("ActiveUsers") - 1
    application.unlock

End Sub
</SCRIPT>

[/FONT]
```

Sedan "onlineusers.asp" inkl. i alla ASP-sidor

```
<%
[B] Vad betyder detta!!!!!!
function Decrypt(sText)
    'Replace with your own decrypt ;)
    Decrypt = sText
end function    
[/B]

    application.lock
    application("PageViews") = application("PageViews") + 1
    if application("TodaysDate") <> Date() then
        application("PageViewsToday") = 0
        application("VisitorsToday") = 0
    end if
    application("PageViewsToday") = application("PageViewsToday") + 1
    application("TodaysDate") = Date()
    application.unlock
    
   ' if session("devUserName") = "" then

        'session("devFullName") = Decrypt(request.cookies("devFullName"))
        
[B]'Session MM_Username innehåller namnet på användaren
        session("devFullName") = Decrypt(Session("MM_Username"))
        [/B]
    end if

    session("PageViewed2") = session("PageViewed1")
    session("PageViewed1") = session("PageViewed0")
    session("PageViewed0") = request.ServerVariables("script_name")
    
    sUserInfo = dOnlineUsers.Item(Session.SessionID)
    aUserInfo = split(sUserInfo, "<|>")
    aUserInfo(1) = Time()
    aUserInfo(2) = request.ServerVariables("script_name")
    sUserInfo = aUserInfo(0) & "<|>" & aUserInfo(1) & "<|>" & aUserInfo(2)
    dOnlineUsers.Item(Session.SessionID) = sUserInfo  
%>
```

Till sist sidan som skriver ut "whoson.asp"

```
<p>
Who is Online
</p>

    <%
    on error resume next
    response.write "<table cellpadding=""2"" cellspacing=""1"" border=""0"" width=""100%"">"        
    response.write "<tr><td></td><td><strong>Who</strong></td><td><strong>When</strong></td><td><strong>Where</strong></td></tr>"
    aSessions = dOnlineUsers.Keys
    for iUser = 0 to dOnlineUsers.Count - 1
        sKey = aSessions(iUser)
        sUserInfo = dOnlineUsers.Item(sKey)
        aUserInfo = split(sUserInfo, "<|>")
        
        sUserName = aUserInfo(0)
        sLastActionTime = aUserInfo(1)
        sLastPageViewed = aUserInfo(2)
        
        if sUserInfo <> "" then
        iUsrCount = iUsrCount + 1
        response.write "<tr><td align=""right"">" & iUsrCount & ".</td><td> " & sUserName & "</td><td>" & sLastActionTime & "</td>"
        response.write "<td>" & sLastPageViewed & "</td></tr>"
        end if
        
    next
    response.write "</table>"
    [B]
    'Provar att skriva ut namnet Funkar
    response.write Session("MM_Username") & "<BR>"
    'Funkar inte
    response.write sUserName
    [/B]
    %>

<br><br>
```

Mvh Jimpa

Permalänk: https://www.webforum.nu/p/778474

## #7 — nisslass, 2002-09-09T00:25Z

Decrypt är till för att manipulera med användarnamnet, vilket du inte behöver bry dig om.

adZero är som det låter AD Zero. Lägg till 0:a.
Lägger till 0:or innan numret på den anslutna användaren om denne ansluter som Gäst.

```
if session("devUserName") = "" then
        session("devUserName") = Decrypt(request.cookies("devUserName"))
        session("devFullName") = Decrypt(request.cookies("devFullName"))
    end if
```

verkar finnas utan anledning så testa byta det till:

```
If Not Session("MM_Username") = "" then
NyttNick = Session("MM_Username")
Else
NyttNick = "Gäst"
End If
```

och efter det, byt

```
sUserInfo = aUserInfo(0) & "<|>" & aUserInfo(1) & "<|>" & aUserInfo(2)
```

i onlineusers.asp till

```
sUserInfo = NyttNick & "<|>" & aUserInfo(1) & "<|>" & aUserInfo(2)
```

I Global.asa kan raden

```
sNewUserName = Decrypt(Session("MM_Username"))
```

 ersättas med: 

```
sNewUserName = "Gäst"
```

 eftersom sessionen MM_Username antagligen inte är definierad precis när man går in på sidan.

Det fungerar för mig iaf.

Permalänk: https://www.webforum.nu/p/778482

## #8 — Denniz PoP, 2002-09-09T11:21Z

> **UnConed skrev:**
>
> Du kan ha en kolumn i en databas som heter t.ex OnlineStatus.
> Sen varje gång de loggar in uppdaterar du den till t.ex 'Ja'
> Och när de loggar du uppdaterar du den igen till t.ex 'Nej'
> Sen kollar du bara vilka som är online genom att skriva ut från databasen.
> Sql = "Select \* From Databaskolumn Where OnlineStatus = 'Ja'"

Det kommer inte riktigt att fungera eftersom alla inte loggar ur helt utan bara stänger ner webläsaren. Därför är det bättre att ha t.ex. en OnlineStatus-kolumn och uppdatera den varje gång användare laddar en ny sida. Sedan kontrollera vilka som gjorde något på sidan för ca 10 min sedan.
Som sagt, den kräver mycket. Men så länge användare bara stänger webläsaren (istället för att trycka på någon "logga ut"-länk först) så är det det bästa sättet att lösa det på.

Permalänk: https://www.webforum.nu/p/778729

## #9 — jimpa, 2002-09-09T15:12Z

Tackar  nisslass  :birp 

Gjorde som du skrev o nu funkar det ju alla tiders!!

Mvh Jimpa

Permalänk: https://www.webforum.nu/p/778919

## #10 — Macce, 2002-09-10T10:11Z

Om du använder en application-variabel istället för db så slipper du prata så mycket med databasen, vilket ger bättre prestanda !

Permalänk: https://www.webforum.nu/p/779464

## #11 — nisslass, 2002-09-10T11:58Z

Det är det scriptet gör som vi snackar om längre upp...

Permalänk: https://www.webforum.nu/p/779521

## #12 — limpon, 2002-09-25T16:03Z

Jag har testat den här koden.
Får hela tiden felmeddelandet.

  Körningsfel i Microsoft VBScript error '800a01a8' 

Objekt krävs.: 'dOnlineUsers' 

/\_onlineusers.asp, line 26

Permalänk: https://www.webforum.nu/p/796781

## #13 — nisslass, 2002-09-25T21:07Z

Har du fixat det du ska i global.asa och stödjer ditt webhotell denna fil?

Permalänk: https://www.webforum.nu/p/797070

## #14 — limpon, 2002-09-26T10:50Z

Ja det gör det jag kopierade först hela jimpas kod, bytte ut till det du sa.

Men får det där felet.

Permalänk: https://www.webforum.nu/p/797316

## #15 — limpon, 2002-09-26T10:55Z

Nu tog jag koden direkt från länken jimpa angav.
Funkar lika dåligt.

Permalänk: https://www.webforum.nu/p/797319

## #16 — limpon, 2002-09-26T10:57Z

det är den här raden jag får fel på.

```
    sUserInfo = dOnlineUsers.Item(Session.SessionID)
```

i \_onlineusers.asp

Är väldigt ovan såna här script.
Håller mest på med databaser.

Permalänk: https://www.webforum.nu/p/797321

## #17 — ampy, 2002-10-04T12:17Z

Jag får också:

```
Objekt krävs.: ''
```

på denna rad:

```
sUserInfo = dOnlineUsers.Item(Session.SessionID)
```

Vad kan det bero på?

Permalänk: https://www.webforum.nu/p/810405

## #18 — nisslass, 2002-10-04T12:23Z

Det verkar som om ni har problem med global.asa.
Läses filen rätt och har ni pillat in rätt kod i filen?
dOnlineUsers initieras i global.asa...

Permalänk: https://www.webforum.nu/p/810412

## #19 — ampy, 2002-10-04T12:27Z

Jag har lagt global.asa i wwwroot:en. Så här ser den ut:

Global.asa:

```
<Object Runat="Server" Scope="application" ID="dOnlineUsers" ProgID="Scripting.Dictionary"></Object>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>

	sub Application_OnStart

    		application("ServerStart") = now

	end sub

		function Decrypt(sText)
    		'Replace with your own decrypt ;)
    		Decrypt = sText
		end function    

		function adZero(sText)
    		'Adds zeros to the beginning
    		if isNull(sText) then exit function
    		adZero = string(5 - len(sText), "0") & sText
		end function

	Sub Session_OnStart

    		'Session_OnStart is automatically called by the ASP Interpreter
    		'when a new session starts. (Probably a new visitor)

    		'TimeOut value determines the period in minutes when 
    		'the session is assumed to be abandoned

    		Session.TimeOut = 20

    		'Get the current active users list
    		sActiveUsersList = application("ActiveUsersList")
    
    		'Get the new user name from the cookie
    		sNewUserName = "Gäst"
    
    		'If the visitor doesn't have a registered username, assign Guest(n) label
    		if sNewUserName = "" then sNewUserName = "Guest-" & AdZero(CInt(application("Visitors")))
    
    		'Initial action time
    		sLastActionTime = Time
    
    		'User info consists of user name, last action time, and the page viewed
    		sUserInfo = sNewUserName & "<|>" & sLastActionTime & "<|>" & sLastPageViewed

    		'Add this user to our collection with SessionID being the key
    		'(See the top of this file to see how dOnlineUsers object is initiated)
    		dOnlineUsers.Add Session.SessionID, sUserInfo
    
    		'Lock the application variable and update the contents
    		application.lock
    		'The number of active users
    		application("ActiveUsers") = application("ActiveUsers") + 1
    		'The number of visitors since last application reset
    		application("Visitors") = application("Visitors") + 1
    
    		'If the date is different than the previously stored date,
    		'it means we passed midnight, so reset our "today" counters
    		if application("TodaysDate") <> Date() then
        	application("PageViewsToday") = 0
        	application("VisitorsToday") = 0
    		end if
    		application("VisitorsToday") = application("VisitorsToday") + 1
    		'Store the date
    		application("TodaysDate") = Date()
    		'Unlock and go
    		application.unlock
    
	End Sub

	Sub Session_OnEnd
    	'Session_OnEnd is automatically called by the ASP Interpreter
    	'when the specified TimeOut period has passed after user's last action

    	on error resume next

    	'Remove this session from our collection
    	dOnlineUsers.Remove Session.SessionID
    
    	'And update the application variables
    	application.lock
    	application("ActiveUsers") = application("ActiveUsers") - 1
    	application.unlock

End Sub
</SCRIPT>
```

Så här ser koden ut som inkluderas på varje sida:

```
   	application.lock
    	application("PageViews") = application("PageViews") + 1
    	if application("TodaysDate") <> Date() then
        application("PageViewsToday") = 0
        application("VisitorsToday") = 0
    	end if
    	application("PageViewsToday") = application("PageViewsToday") + 1
    	application("TodaysDate") = Date()
    	application.unlock
    
	If Not Session("username") = "" then
	NyttNick = Session("username")
	Else
	NyttNick = "Gäst"
	End If

    	session("PageViewed2") = session("PageViewed1")
    	session("PageViewed1") = session("PageViewed0")
    	session("PageViewed0") = request.ServerVariables("script_name")
    
    	sUserInfo = dOnlineUsers.Item(Session.SessionID)
    	aUserInfo = split(sUserInfo, "<|>")
    	aUserInfo(1) = Time()
    	aUserInfo(2) = request.ServerVariables("script_name")
    	sUserInfo = NyttNick & "<|>" & aUserInfo(1) & "<|>" & aUserInfo(2)
    	dOnlineUsers.Item(Session.SessionID) = sUserInfo
```

Jag kan inte se någon feländring jag har gjort, kan ni det?

Sidan där jag skriver ut användarna behöver jag ju inte visa för den orsakar knappast felet. För övrigt funkar den sidan bra.

Permalänk: https://www.webforum.nu/p/810415

## #20 — nisslass, 2002-10-04T12:33Z

Ni kör vanliga MS ASP va? Inte chillisoft eller liknande?
Har ni gjort exakt som jag längre upp så borde det ju fungera.. \*hmm\*

Permalänk: https://www.webforum.nu/p/810427

---

Tråden på webben: https://www.webforum.nu/amne/asp/52624-visa-vilka-medlemmar-som-är-online  
Nästa sida: https://www.webforum.nu/amne/asp/52624-visa-vilka-medlemmar-som-är-online/page2.md
