Jag hadde tänk att göra en funktion som visar om en användare är online eller inte. jag har placerat en liten 0 gånger 0 pixlar stor frame med en sida i som uppdateras var 5:e minut. Om session("inloggad") = true så ska den spara datum och tid i databasen. Och sedan djämföra nuvarande datum med datumet i databasen, om det skiljer mer äm 5 minuter mellan dom är man offline annars är man online.
Fråga : hur gör man för att spara nuvarande datum i databasen?
Fråga 2 : Hur gör man för att djämföra nuvarande datum med datumet i databasen och ge olika resultat om skilnaden är mer än 5 min och mindre ?
Någon som har en annan ide till hur detta kan lösas utan global.asa så lyssnar jag mer än gärna ;)
Koden för att spara datumet funkade fin fint när jag ändrat om till mina namn. Men den andra koden förstår jag inte riktigt.
jag listar upp alla användare och skulle vilja ha en text som är online när det inte är mer än 5 min och offline om det är mer, hur gör man det med den koden?
SQL="Select * From Users Where date_add(Online,interval 5 minute) >= current_timestamp"
Set onlineRS=Conn.Execute(SQL)
Do Until onlineRS.EOF
Response.Write onlineRS("Username") & "<br>"
onlineRS.MoveNext
Loop
onlineRS.Close
Set onlineRS = Nothing
jovisst men det där listar ju alla som är online och det var inte det jag var ute efter. Jag har redan listat samtliga medlemmar och vill ange brevid deras namn om dom är offline eller online! ;)
Kompileringsfel i Microsoft VBScript fel '800a03ee'
')' förväntas.
/StajlLinks 1.0/members.asp, rad 121
If date_add(online("online"),interval 5 minute) >= current_timestamp Then
--------------------------------------^
jag använder nu denna sql kod
Set online = Connection.Execute("Select * From members Where date_add(Online,interval 5 minute) >= current_timestamp")
och if satsen som du sa
<% If date_add(online("online"),interval 5 minute) >= current_timestamp Then%>ONLINE<%Else%>OFFLINE<%end if%>
Tanken med if satsen var att plocka ut online ifrån den SQL koden du använder för att hämta användarens info, t ex:
Set online = Connection.Execute("Select * From members Where MemberID="& Request.QueryString("show_user") &"")
If date_add(RS("online"),interval 5 minute) >= current_timestamp Then
userOnline= " Online"
End If
Response.Write online("Username") & userOnline
Allt beror på hur du visar den andra informationen. Jag har tyvärr inte testat if satsen, men den borde funka
Eller alltså jag tror att jag fattar, men jag får error på den där djävla femman hela tiden!
Kompileringsfel i Microsoft VBScript fel '800a03ee'
')' förväntas.
/StajlLinks 1.0/members.asp, rad 9
If date_add(RS("online"),interval 5 minute) >= current_timestamp Then
----------------------------------^
If date_add(RecSet("online"),interval 5 minute) >= current_timestamp Then
får error
Kompileringsfel i Microsoft VBScript fel '800a03ee'
')' förväntas.
/StajlLinks 1.0/members.asp, rad 9
If date_add(RecSet("online"),interval 5 minute) >= current_timestamp Then
--------------------------------------^
Koden jag fick va ju heltokig :o)
Löste det iaf tillslut med lite hjälp!
<%
Set online = Connection.Execute("Select * From members Where nick='"& recset("nick") &"'")
onlinemin = DateDiff("n", online("online"), now)
if onlinemin <= 5 then
userOnline= " Online"
color = "#00CC00"
else
userOnline=" Offline"
color ="#FF0000"
end if
%>
<font color="<%=color%>"><%=UserOnline%></font>