webForumDet fria alternativet

Lista inloggade

ASPur ASP

12 svar · 251 visningar · startad av fredrik99

fredrik99Medlem sedan maj 2000426 inlägg
#1

Jag har ett inloggingssystem där jag låter användarna logga in sig.

Hur gör jag för att lista UT vem som är inloggade just nu.
Och en lista på top 10, de 10 senaste inloggade.

emissionMedlem sedan dec. 19996 721 inlägg
#2

Detta verkar vara den absolut vanligaste frågan just nu. Om någon har en färdig lösning, från de tidigare diskussioerna, vore det fint att få upp den i wF Script.

Andreas LMedlem sedan sep. 2000215 inlägg
#3

Exempel:

Du gör en inloggning på en sida varpå du sparar användarnamn, tid för inloggning och sessionsid i en trevlig tabell i en databas.

När du sedan vill visa vilka som är inloggade så är det ju bara att läsa av tabellen i databasen.
Om du exempelvis bara vill visa de senast inloggade, så har du ju inloggningstiden som hjälp.
Ex.
<%
stm = "SELECT * FROM inloggade "
stm = stm & "ORDER BY tid DESC"

SET RS = Conn.Execute(stm)

FOR i = 1 TO 10
IF RS.EOF then
Exit FOR
END IF
Response.Write RS("namn") & "<br>"
RS.Movenext
Next

RS.Close
Cn.Close

%>
Alternativt är ju att du använder dig av ett räknarfält. Detta bör väl funka om jag inte sitter och svamlar i godnattmössan...

Eftersom du antagligen inte vill spara informationen för all framtid, så kan du ju skriva in en liten sql-snutt i Global.ASA's "Session_OnEnd", som tar bort användaren ur tabellen över inloggade.

Svårare än så behöver det väl inte vara?!
...såvida jag inte missförstått alltihop?!

------------------
"Life's a bitch who sucks... then you marry one who dosn't"

SPiNMedlem sedan mars 20007 896 inlägg
#4

Precis, svårare än så behöver det inte vara :)

Men eg. behöver man inte en databas, man kan lika bra använda Applicationer. Det gör jag i min chatt som jag utvecklar, problemet är bara att man inte kan använda global.asa i något gratis webhotell.
Det är den enda nackdelen jag ser, och Session_onEnd måste man ju använda för att se nät användarna stänger chatfönstret eller går vidare till en ny adress utan att trycka på en logout knapp t.ex.

------------------
SPiN, bjorne.w@telia.com

Andreas LMedlem sedan sep. 2000215 inlägg
#5

Ja... jag vill ju inte att du skall se några nackdelar, så om man nu inte kan köra Global.ASA, så får man väl skriva sig en liten snutt som plockar bort de äldsta posterna i tabellen efter det att man lagt till den nya posten(besökaren)

Käckt va? ;)

------------------
"Life's a bitch who sucks... then you marry one who dosn't"

BrimbaMedlem sedan dec. 19995 875 inlägg
#6

Men då kan iofs alla logga ut och det är först när det kommer någon ny, som man inser att alla är borta ;)

Ha det!

------------------
Mvh
Patrik
aka Brimba

Andreas LMedlem sedan sep. 2000215 inlägg
#7

Det har du faktiskt helt rätt i men...

Man kuuuunde ju ;) lösa det så att man uppdaterar tidsvärdet i tabellen när en enskild användare gör en aktiv handling, för att sedan använda värdet för att avgöra om man vill anse sessionen som aktiv(20min inaktivitet) och sedan plocka bort poster som inte uppdaterats, varje gång som någon hämtar uppifter ur tabellen...
Sen har du ju fortfarande kvar räknaren för att hålla reda på vilken turordning som de loggat in!

...men om man nu inte tycker att det är jättekul att småprata med databaser, så är nog application() ett bra alternativ!

:e

------------------
"Life's a bitch who sucks... then you marry one who dosn't"

erkaMedlem sedan dec. 19996 522 inlägg
#8

Hmmm jag har ett användar system där man logga in och sedan använder sig av username session...

Det borde ju finnas någe smidigt sätt att visa vilka som är inloggade just nu...för att visa alla aktiva sessioner...Någon som har lite kod kanske? jag är vetig i skallen på detta..tack så länge.. ;)

@ndersMedlem sedan juni 200032 969 inlägg
#9

för att visa alla aktiva sessioner...Någon som har lite kod kanske?

lessen, men det går inte. du får göra enligt tidigare förslag med en databas eller med applikationsvariabler.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
that's what brian boitano would do!</A>

[Redigerat av @nders den 17 nov 2000]

OveRRidEMedlem sedan feb. 200112 078 inlägg
#10

Detta kan man väl lösa genom att se till att uppdatera en post i en databas när användaren loggar in.

Typ..

If Request.Form("password") = "opensesam" Then
RecSet("inloggad") = True
Response.Redirect "hemlig-sida.asp"
Else
Response.Write "Fel lösenord, duh.."
End If

och när han loggar ut eller blir inaktiv, blir "Inloggad" False...

Sen när man skall visa vilka som är inloggade...

SELECT * FROM users WHERE inloggad = True

Eller? ;)

------------------
*Notepad.exe for president*

[Redigerat av OveRRidE den 26 mar 2001]

brwMedlem sedan juli 2000619 inlägg
#11

Jag sparar alla som loggar in i mitt inloggningssystem men problemet är om någon inte loggar ut rätt eller att sessionen dör ut. Då ligger ju användaren kvar som inloggad och när man loggar in nästa gång så uppdateras bara posten med ett nytt datum för användaren.

Detta borde ju gå att lösa med att man tex. tar bort alla som är äldre än ett par timmar el. ngt. liknande. Någon som har nå bra förslag?

Jag har en användare som inte loggade ut som står som inloggad från den 16 mars hehe.

------------------
Ingenting är omöjligt, bara en utmaning.

OveRRidEMedlem sedan feb. 200112 078 inlägg
#12

Nu mumlar jag bara känner jag, men borde du inte kunna öppna ett recordset i global.asa och jämföra Session.SessionId mot klienter och radera de som inte finns kvar, typ med jämna mellanrum, t,ex vid en session.timeout? Om du väljer att lagra de som är inloggade i databasen vill säga.. ?

Som sagt jag har inte testat eller funderat så mycket på det så smiska mig om jag har fel :e

------------------
SELECT * FROM existence WHERE sex = 'female' AND age > '18' AND age < '25' OR name = 'Sandra Bullock' ORDER BY breastsize

jepsOMedlem sedan mars 2001484 inlägg
#13

http://www.gladh.nu/asphelp/svar7.html

------------------
/ jeps0

134 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)