Lagra session-id i tabellen Member, uppdatera detta när man loggar in. Sedan är det bara att fråga Member-tabellen om vem som är vem.
Mvh
3 svar · 255 visningar · startad av annesophie
Hej,
Håller på att bygga samman mitt forum med lite andra delar på sidan och har stött på ett problem. Känner på mig att lösningen är riktigt simpel men kan inte riktigt få till det.
Har en sida - STATISTIK - som visar vad besökare på sidan gör just nu (ungefär samma som funktionen Besökaren här på WF).
Ser ut så här:
975715917 Granskar besökarna 9:56:28 AM
Vad jag inte får ihop är följande:
De personer som är inloggade i forumet betecknas TRUE. Jag skulle vilja att personer som är inloggade, istället för att visas som ett sessionnummer, visas med användarnamn, precis som här på WF. Om personen inte är inloggad så skulle man kunna skriva ut "gäst" istället.
Muppen Granskar besökarna 9:56:28 AM
Gäst Läser tråden "QUE?" 9:58:49 AM
*** Fil STATISTIK.asp i förkortat form ***
[1]
<!-- #INCLUDE FILE="LOGINFO.asp" -->
<HTML>
<HEAD>
</HEAD>
<BODY>
<!-- START CONTENT -->
<%
Application.Lock
statistik=Application("Stats")
Application.UnLock
%>
<table border="0" cellspacing="0" cellpadding="1" width="100%">
<tr>
<TD class="bread">
<TABLE BORDER=0 CELLPADDING=1 CELLSPACING=0 width="100%">
<%
count=0
FOR i = 0 TO UBOUND( statistik, 2 )
IF statistik( 0, i ) <> "" THEN
%>
<TR <%IF statistik( 0, i )=session.sessionID THEN%>BGCOLOR="#eeeeee"<%END IF%>>
<TD class="bread" width="20%"><%=statistik( 0, i )%></TD>
<TD class="bread" width="65%"><%=statistik( 1, i )%></TD>
<TD class="bread"width="15%"><%=statistik( 3, i )%></TD>
</TR>
<%
count = count + 1
END IF
NEXT
%>
</TABLE>
<!-- END CONTENT -->
</BODY>
</HTML>
[/1]
*** Includefil LOGINFO.asp ***
[1]
<%
foundUser = FALSE
Application.Lock
statistik = Application( "Stats" )
FOR k = 0 TO UBOUND( statistik, 2 )
' ### OM ANVÄNDAREN FINNS ###
IF statistik( 0, k ) = Session.SessionID THEN
IF TITLE <> "" THEN
statistik( 1, k ) = TITLE
ELSE
statistik( 1, k ) = Request.ServerVariables( "SCRIPT_NAME" )
END IF
statistik( 4, k ) = Request.ServerVariables( "HTTP_USER_AGENT" )
foundUser = TRUE
EXIT FOR
END IF
NEXT
IF foundUser = FALSE THEN
FOR k = 0 TO UBOUND( statistik, 2 )
' ### OM ANVÄNDAREN EJ FINNS ###
IF statistik( 0, k ) = "" THEN
statistik( 0, k ) = Session.SessionID
IF TITLE <> "" THEN
statistik( 1, k ) = TITLE
ELSE
statistik( 1, k ) = Request.ServerVariables( "SCRIPT_NAME" )
END IF
statistik( 2, k ) = Request.ServerVariables( "REMOTE_ADDR" )
statistik( 3, k ) = TIME()
statistik( 4, k ) = Request.ServerVariables( "HTTP_USER_AGENT" )
EXIT FOR
END IF
NEXT
END IF
Application("Stats") = statistik
Application.UnLock
%>
[/1]
*** Kod som visar vilka medlemmar som är on-line ***
[1]
sql = "select * from Member where memLoggedOn = " & true
set rs = conn.execute(sql)
response.write rs("memName")
[/1]
Förslag någon? :)
Lagra session-id i tabellen Member, uppdatera detta när man loggar in. Sedan är det bara att fråga Member-tabellen om vem som är vem.
Mvh
Hmm ok, ska testa detta genast. Tack! :)
Detta är en princip som jag tillämpar. Du kan ju kika på't:
På loginsidan:
Dim username
username = RecSet("Username")
Session("username") = username
Application("active_users")=Application("active_users") & uname & "*"
På "Vilka är onlinesidan":
Set Recset = Server.CreateObject("ADODB.Recordset")
Recset.Open strSQL, conn, 3, 3
Do While Not Recset.EOF
user_array=split(Application("active_users"),"*")
for t=0 to ubound(user_array)
user=user_array(t)
If Recset("username") = user Then
Response.write "Online: "& Recset("username") &"<br>"
end if
next
Recset.MoveNext
Loop
%>