Jag har ett väldigt buggig online funktion! Glömmer man logga ut så blir man fortfarande inloggad..... Hur gör man för att de ska logga ut eller så att den sätts som offline iaf! Ska man ha en popup som dyker upp en snabbis snär man går i från sidan??
öööö hur menar du???? Jag har en som kollar när de loggar in (datum) Men hur ska jag göra??? En session lr?
Sen om man inte är kvar på vår sida da??? Då ska den ta bort de! Liksom... Varje gång en loggar in så ska den rensa bort de som inte har gjort de ordengligt!
Den här koden vill inte fungera:
Do Until RecSet.EOF
If Rs("onoff") = "online" AND DateDiff("n", Rs("datum"), Now) > 30 Then
Rs("onoff") = "offline"
Rs.Update
End If
RecSet.MoveNext
Loop
RecSet.Close
Gör ett till datafält i medlems-tabellen med namnet "lastactive" eller nåt klurigt.
Sen när de surfar runt på sidan sätter du lastactive till Now() t ex.
Om de då sedan hoppar ut från sidan Utan att logga ut så kommer ju lastactive vara tiden då de senast var aktiva ;)
Då kan du ha en liten funktion som sätter t ex datafältet "online" till "no" (eller vad du nu har) när det har gått kanske 5 min från "lastactive"..
funktionen kan ju aktiveras t ex när nån annan loggar in eller nåt..
Hm... Var detta en tillräckligt flummig förklaring? ;)
Du får ha ett fält i databasen där det står när de senast var aktiva (dvs. laddade en sida, klickade på en länk mm) på din site. Detta fält måste du uppdatera varje gång besökaren gör något.
Sen varje gång när någon medlem loggar in / ut, så kör du en koll och rensar bort de användarna från 'onlinetabellen' (antar att du har någon sådan?) som inte varit aktiva inom ex. de senaste 20 minutrarna.
Eitraz... Ja! Jag la till denna kod(Igen)
Då sa den:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/signin.asp, line 39
Så här e koden:
<%
Option Explicit
Dim sql,rsUser,username,password,page,stayloggedin,LConnectString,lconn,sqlflag,active,se
'Grab the submitted variables (page is the page they've come from, set by the hidden variable at the login box)
username = Request.Form("username")
password = Request.Form("password")
page = Request.Form("page")
stayloggedin = Request.Form("stayloggedin")
if page = "" then
page = "index.asp"
end if
'Check no s**t is trying to hack in using SQL commands
if InStr(username, "'") or InStr(username, """") or InStr(username, "=") or InStr(password, "'") or InStr(password, """") or InStr(password, "=") then
sqlflag = True
end if
'Open connection
%>
<%
se=request("se")
if se="" then
se=username
end if
%>
<!--#include file="conn.asp"-->
<%
'Get a recordset corresponding to the submitted username and password
sql = "SELECT username, statuslevel FROM status INNER JOIN users ON status.statusid = users.status WHERE username = '" & username & "' AND password = '" & password & "' AND active = True"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.Open sql, conn, 3, 3
'----- Rensar bort sånna som inte loggat ut korrekt.. -------
Do Until Rsuser.EOF
39--> If Rsuser("onoff") = "Online" AND DateDiff("n", Rsuser("datum"), Now) > 30 Then
Rsuser("onoff") = "Offline"
Rsuser.Update
End If
Rsuser.MoveNext
Loop
'---------------- SLUT PÅ UTRENSNINGEN ------------------
'If there was a valid recordset there, then send them back to the page they came from, with the username cookie set
If (not rsUser.BOF) and (not rsUser.EOF) and sqlflag <> True then
Response.Cookies("username") = rsUser("username")
Response.Cookies("level") = rsUser("statuslevel")
Set rsuser = Server.CreateObject("ADODB.Recordset")
rsuser.open "users WHERE username = '" & username & "'", conn, 3, 3
rsuser("onoff") = "Online"
rsuser("datum") = Now
rsuser.Update
Session.TimeOut = 30 '<-- Kontrollera
set rsUser = nothing
conn.close
set conn = nothing
Response.Redirect(page)
end if
'Otherwise, display an invalid entry screen
rsUser.close
set rsUser = nothing
conn.close
set conn = nothing%>
"Onoff" är den som har offline o online! Datum ska kolla när de loggade in! Och båda finns! Varför säger den då att den inte hittar?
Du måste ha med dem i:
SELECT username, statuslevel FROM
alltså
SELECT username, statuslevel,onoff,statuslevel FROM
eller allt som används helt enkelt..
azzå jag kanske förklarade otydligt..... den skippar i att kolla lösenordet och användarnamnet nu! Man kommer till sidan som säger "fel användare eller lösen"
Hm... jag är inte riktigt med, men är det inte koden för att logga in på siten du ändrar på nu?
Man kan väl inte kolla om man är inloggad innan man ens hunnit logga in.
Mao, tycker det verkar fel att lägga in koden där.
Men koden jag jag vill ha..... Rensar bort andra som inte har loggat ut! Den fungerar på ett annat loggin script men inte till denna.... Behöver man någon Session lr nått????