Hvis sessionID er det unike id serveren generere så kan du vel løbe en tabellen igennem og tjekke sådan
if Session.SessionID = rs("sessionID") then Response.write "Aktiv else Response.write "ikke aktiv" end if
men en god ide er lige at undersøge om sessionID'er bliver genbrugt... altså hvis du logger af serveren om en anden så kan få dit sessionID eller om der går en periode og det kan bruges igen.
Jo den kan jeg godt se, men det er vel for den enkelte bruger Hvis jeg skriver Session.SessionID hvad er det så for et Id jeg får det jeg var ude efter var at se om de ( jeg har(kan have) flere) sessionID i db'en , om de har forladt siden eller ej. F.eks jeg har 10 sessionID i Db'en er der så en mulighed for at se om de er aktive.
hvis du ikke kan gøre sådan her så ved jeg ikke rigtigt hvordan det skal gøres.. det her giver dig en collection i hvertfald, men måske også mere end hvad du har behov for (altså hvis du har gemt andre ting i session) men ved ikke.. måske kan man også lave et tjek på om det er et sessionid man hiver ud og så vil det jo virke.
<% for each x in Application.Contents if Application.Contents(x) = rs("sessionID") then Response.write Application.Contents(x) + "er aktiv" else Response.write Application.Contents(x)+ "er ikke aktiv" end if next %>
Hej Du skal jo gemme hver aktive brugers session.ID i en application i global.asa-filen først. Så kan du trække den ud på en asp-side... Sådan her:
global.asa:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart application("aktive")=null End Sub Sub Session_OnStart Session.Timeout = 20 Application.Lock application("aktive")=application("aktive") & session.ID & ";" Application.UnLock End Sub Sub Session_OnEnd Application.Lock application("aktive")=replace(application("aktive"),session.ID & ";","") Application.Unlock End Sub </SCRIPT>
- vær opmærksom på at din global.asa kan sagtens indeholde noget andet i forvejen som din webside måske også bruger...
- Nå, men den side du gerne vil have listen vist på kunne så se sådan her ud:
<% if application("aktive")<>"" then set conn = Server.CreateObject("ADODB.Connection") conn.open("Driver={MicroSoft Access Driver (*.mdb)};DBQ=" & server.mappath("data.mdb")) strAktive = split(application("aktive"),";") for a=0 to (ubound(strAktive)-1) set rs = conn.execute("select * from tabel where id=" & strAktive(a) & "") if NOT rs.EOF then %> <%=strAktive(a)%> er aktiv nu...<br> <% rs.close set rs=nothing end if next conn.close set conn=nothing end if %>
- det afhængiger selvfølgelig lidt af hvad de forskellige ting hedder i din database men ellers skulle dette her virke...
\Dan
Synes godt om
Slettet bruger
07. januar 2007 - 16:21#8
vupti... asp-filen skulle se sådan her ud:
<% if application("aktive")<>"" then set conn = Server.CreateObject("ADODB.Connection") conn.open("Driver={MicroSoft Access Driver (*.mdb)};DBQ=" & server.mappath("data.mdb")) strAktive = split(application("aktive"),";") for a=0 to (ubound(strAktive)-1) set rs = conn.execute("select * from tabel where id=" & strAktive(a) & "") if NOT rs.EOF then %> <%=strAktive(a)%> er aktiv nu...<br> <% end if rs.close set rs=nothing next conn.close set conn=nothing end if %>
Fik nu ikke den til at virke melder fejl Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'Session.ID'
i linien i global.asa application("aktive")=application("aktive") & session.ID & ";"
LN
Synes godt om
Slettet bruger
28. januar 2007 - 21:10#12
arh... ok... ved nærmere eftertanke så skal din session.ID nok defineres til en regulær session inden vi kan sætte den global.asa så... noget a la det her så...
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart application("aktive")=null End Sub Sub Session_OnStart Session.Timeout = 20 Application.Lock application("aktive")=application("aktive") & session("id") & ";" Application.UnLock End Sub Sub Session_OnEnd Application.Lock application("aktive")=replace(application("aktive"),session("id") & ";","") Application.Unlock End Sub </SCRIPT>
<% application("aktive")=replace(appclication("aktive"),session.ID & ";","") session("id")=session.ID if application("aktive")<>"" then set conn = Server.CreateObject("ADODB.Connection") conn.open("Driver={MicroSoft Access Driver (*.mdb)};DBQ=" & server.mappath("data.mdb")) strAktive = split(application("aktive"),";") for a=0 to (ubound(strAktive)-1) set rs = conn.execute("select * from tabel where id=" & strAktive(a) & "") if NOT rs.EOF then %> <%=strAktive(a)%> er aktiv nu...<br> <% end if rs.close set rs=nothing next conn.close set conn=nothing end if %>
Sub Session_OnStart Session.Timeout = 20 Application.Lock application("aktive")=application("aktive") & session("id") & ";" Application.UnLock End Sub Sub Session_OnEnd Application.Lock application("aktive")=replace(application("aktive"),session("id") & ";","") Application.Unlock End Sub Og asp siden ser således ud <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% application("aktive")=replace(appclication("aktive"),session.ID & ";","") session("id")=session.ID if application("aktive")<>"" then Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Application("sql") strAktive = split(application("aktive"),";") for a=0 to (ubound(strAktive)-1) set rs = conn.execute("select * from tabel where id=" & strAktive(a) & "") if NOT rs.EOF then %> <%=strAktive(a)%> er aktiv nu...<br> <% end if rs.close set rs=nothing next conn.close set conn=nothing end if
%> Når jeg kører asp siden får jeg fejlen: Microsoft VBScript runtime error '800a000d'
Type mismatch: 'appclication'
/checksession.asp, line 3
Hilsen Ln
</SCRIPT>
Synes godt om
Slettet bruger
28. januar 2007 - 22:51#14
OK... Det er fordi der står "appclication" og ikke "application" - det er formentlig en slåfejl og hvis det er mig der har lavet den beklager jeg dette...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.