Avatar billede ingerslev Nybegynder
23. februar 2003 - 20:12 Der er 15 kommentarer og
2 løsninger

Global.asa - session_OnEnd

I global.asa filen findes sub'en session_OnEnd. Jeg skal på en eller anden måde have fat i session("brugernavn") for brugerens sluttede session.
Avatar billede boris Mester
23. februar 2003 - 20:14 #1
Jo, men så må du jo sætte Session_OnEnd til at gemme variablen i noget der bliver ved med at være der.
Du kan gemme det i application, men det vil jeg ikke anbefle.
Hvad med at sætte Session_OnEnd til at skrive/appende til en tekstfil?
Avatar billede boris Mester
23. februar 2003 - 20:15 #2
Det siger sig selv at du ikke kan få fat i noget, når session først er slut, men gem det et sted på disken.
Avatar billede hossein Nybegynder
24. februar 2003 - 00:38 #3
Jeg ved ikke hvordan ser din login side ude, efter at du har tjekket password og brugernavn så skal du login side ha en insert sætning so sætter brugeren ID værdi fra fx Medlem tabelen in i en session variable:

Session("bruger") = rs("Id")

query = "UPDATE User_LogTime SET offline=True WHERE offline=False AND user_id=" & session("bruger")
conn.Execute (query)
               
query = "INSERT INTO bruger_LogTime (bruger_id, SID, Login_Time) "
query = query &_
        "VALUES (" & Session("bruger") & "," &_
        Session.SessionID & ",#" & now() & "#)"
conn.Execute (query)

-----< global.asa >-----
Sub Session_OnEnd
    set conn = Server.CreateObject ("ADODB.Connection")
    conn.Open Application("connString")

    query = "UPDATE bruger_LogTime SET Logout_Time=#" & now() & "#, offline=True "
    query = query & "WHERE offline=False AND SID=" & Session.SessionID &_
                " AND user_id=" & Session("bruger")
   
    conn.Execute (query)
    conn.Close
    set conn = Nothing   
End Sub
Avatar billede hossein Nybegynder
24. februar 2003 - 00:39 #4
ups, alle user skal blive til bruger
Avatar billede ingerslev Nybegynder
24. februar 2003 - 15:28 #5
Jeg kan jo netop ikke få fat i session variabler i global.asa
Avatar billede chrmunk Nybegynder
03. marts 2003 - 10:37 #6
Jeg har det samme problem og jeg ender nok med at lave et helt andet program der tjekker om folk er active eller idle og derefter lader dem vaere i en tabel der hedder online.
Avatar billede ingerslev Nybegynder
03. marts 2003 - 15:14 #7
Jeg har faktisk løst problemet. Eller jeg tror det løste sig selv på en eller anden måde. Jeg kan undersøge det hvis du gerne vil have det. Altså løsningen.
Avatar billede the_bma_man Nybegynder
04. marts 2003 - 22:46 #8
Det må du meget gerne.
Avatar billede chrmunk Nybegynder
04. marts 2003 - 22:55 #9
Min løsning var at lave et andet program.

Den her linje kører i login scriptet:
cn.execute("INSERT into online (postname,sessionid,logindate,userid) VALUES ('" & navn & "','" & Session.SessionID & "','" & time & "','" & user & "')")
Avatar billede chrmunk Nybegynder
04. marts 2003 - 22:57 #10
så i toppen på hver side. (jeg bruger include)

cn.execute("UPDATE online SET active='" & time & "' , lastrequest='" & Request.ServerVariables("HTTP_REFERER") & "' where sessionid='" & session.sessionid & "'")


SQl_query = "select * from online"
Set RS = cn.Execute(sql_query)

while not rs.eof
datedif=DateDiff("s",rs("active"),time)
if DateDiff("s",rs("active"),time)>timeout then

SQLstmt = "DELETE * FROM online WHERE id=" & rs("id")
cn.execute(SQLstmt)
end if
rs.movenext
wend

og i logout har jeg så

            SQLstmt = "DELETE * FROM online WHERE postname='" & Session("navn") & "'"
            cn.execute(SQLstmt)

håber det giver en ide til jer hvordan man kan gå uden om session.onend
Avatar billede chrmunk Nybegynder
04. marts 2003 - 22:58 #11
glemte mit timemout:

timeout=20
timeout= timeout * 60

hvor 20 er minuter.
Avatar billede ingerslev Nybegynder
05. marts 2003 - 14:29 #12
Jeg ved ikke hvorfor og om det passer, men jeg har en ASP bog som siger at man IKKE må gemme session.sessionID i en database... Aner ikke hvorfor... Nå men mit virker så jeg tror jeg holder mig til det. Det der værk opdaterer da vist heller ikke medmindre bruger opdaterer siden. Jeg skal have så de andre brugere kan se om man er online eller offline.
Avatar billede chrmunk Nybegynder
05. marts 2003 - 14:33 #13
Det der sessionid ved jeg ikke hvorfor man ik på lægge i en database.

Hvis du kigger tæt på koden kan du ser hver gang en user opdatere en side tjekker koden ALLE i online tabellen om de har været idle for lang tid og i så fald sletter dem. Den tjekker ikke kun den user som opdatere siden.
Avatar billede ingerslev Nybegynder
05. marts 2003 - 14:36 #14
Det må da være rimelig tungt med 100 online. Du skal tænke på at det hele skal kørers igennem før brugeren ser siden hver gang.
Avatar billede chrmunk Nybegynder
05. marts 2003 - 14:37 #15
ja ok...jeg har et forum med kun 25 mellemere...der kan man ikke mærke det...men med 100 online kunne man vel godt...det kan jeg ikke sige...ellers kan du vel sætte programmet til at køre hver 5 minut...
Avatar billede ingerslev Nybegynder
05. marts 2003 - 14:47 #16
hvis man skal lave det på din måde tror jeg man skal bruge CGI, hvis det er mange brugere... Men tak for snakken :o)
Avatar billede the_bma_man Nybegynder
12. marts 2003 - 23:22 #17
Hvordan løste du det, Ingerslev?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

HusCompagniet A/S

Application Manager

SporingsGruppen ApS

App-udvikler

Sparekassen Danmark

Systemudvikler

Udviklings- og Forenklingsstyrelsen

Data Engineers til bekæmpelse af skatteunddragelse