webForumDet fria alternativet

Hejsan!

ASPur ASP

22 svar · 458 visningar · startad av DiDjo

Medlem sedan nov. 2002544 inlägg
Frågan#1

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??

Medlem sedan sep. 2002366 inlägg
#2

Gör annars en "tidskollare" som aktiveras varje gång t ex någon ny medlemmar loggar in/ut och som "tar bort" medlemmar som varit inaktiva en viss tid.

Då måste du ju iofs ha en liten kod i toppen på sidorna som uppdaterar tiden när någon är "aktiv" förstås..

-Eitraz

Medlem sedan nov. 2002544 inlägg
#3

öööö 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
Medlem sedan sep. 2002366 inlägg
#4

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? ;)

-Eitraz

Medlem sedan mars 20025 907 inlägg
#5

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.

Förstår du?

r/ ajdå. Lite sent kansk ;)

Medlem sedan sep. 2002366 inlägg
#6

Oj, där ändrades visst inlägget ;)

Är Rs("datum") tid oxå?

-Eitraz

Medlem sedan feb. 200112 078 inlägg
#7

Det är här den ofta underskattade global.asa kommer in i bilden.

Jag skrev ett inlägg om det i forumet så sent som igår, och det bör läsas i sin helhet.

http://www.webforum.nu/showthread.php?s=&threadid=57495
http://www.webforum.nu/showthread.php?s=&threadid=56886&highlight=global.asa

Medlem sedan sep. 2002366 inlägg
#8

Huuu... litar inte på den filen ;D

-Eitraz

Medlem sedan nov. 2002544 inlägg
#9

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?

Medlem sedan sep. 2002366 inlägg
#10

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..

-Eitraz

Medlem sedan nov. 2002544 inlägg
#11

ok! Hur skriver man för att få in den där???? users och som sagt onoff kollumnen

Medlem sedan juni 200032 967 inlägg
#12

På rad 39 försöker du göra en jämförelse på ett fält som heter datum. Du har inte med det fältet i din SELECT-lista.

Medlem sedan nov. 2002544 inlägg
#13

näää jag vet! Hur skriver man in de i SELECT-listan??? Jag har inte gjort inloggnings systemet!

Medlem sedan sep. 2002366 inlägg
#14

som jag skrev innan...

sql = "SELECT username, statuslevel FROM status
=>
sql = "SELECT username, statuslevel,onoff,datum FROM status

det ska nog räcka..

-Eitraz

Medlem sedan nov. 2002544 inlägg
#15

aha! Sorry Eitraz! Såg inte

Medlem sedan nov. 2002544 inlägg
#16

Men om man la till den så kunde man inte logga in!
Då säger den bara "Fel användarnamn eller lösenord"

Medlem sedan nov. 2002544 inlägg
#17

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"

Medlem sedan mars 20015 287 inlägg
#18

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.

Medlem sedan nov. 2002544 inlägg
#19

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????

Medlem sedan nov. 2002544 inlägg
#20

Är det ingen som vet?? Kan någon fixa en ny kod??? Jag vill att den resnar bort alla som inte loggat ut! Så den setter onoff = Offline!

139 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)