26. juli 2002 - 15:26Der er
23 kommentarer og 1 løsning
Session.timeout, global.asa, ud med bruger i db osv.
Hvis nu, jeg, i en database har regristeret nogle brugere, der lige er logget ind, men brugerne, istedet for at logge ud, trykker på krydset således at de for evigt vil være regristeret, gerne vil have min side til at slette brugeren fra databasen... hvad skal jeg så skrive i global.asa?.
Jeg kan kun finde irriterende eksempler i global.asa hvor man kan tælle et antal hits på en side. Men det kan jeg ikke bruge til en dyt, for mit script skal jo først finde navnet på en bruger (en session) der er udløbet, og slette den fra databasen.
Kan nogen sådan regne mit problem ud, hvis det er dårligt formuleret OG endda hjælpe mig?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ret så utrolig og urolig ufedt. Men tak for hjælpen. Jeg bruger netop access.
Kan man ikke få global.asa til at identificere en udløbet session og bruge den i sine koder, for bearbejdning: ---global.asa sub session_onEnd application("AHA") = brugernavn end sub ---enellerandenfil.asp if applactiona("AHA") <> "" then ...blablablabla... end if
du kan så modificere din session_onend til at slette eller opdatere et eller andet ;)
fx. ala (du skal så have user id i session("UserID") ;) )
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") strSQL = "DELETE FROM <table> WHERE userID=" & Session("UserID") oconn.open strconn oconn.execute strconn oconn.close Application.UnLock End If
a1 har ret i at det godt KAN virke med Access, men det kræver noget af et lykketræf af bl.a. server-, database- og provider version. Jeg ville ikke satste ret meget på at få det til at virke og slet ikke stabilt.
Hellig Ko!!!!!!!, da ikke også. Minsandten om ikke det ligner noget jeg kan bruge. Jeg kigger lige på det, hvis jeg er klog nok til at få det til at virke, acceptere jeg svaret. Hæhæ.
Det der undrer mig i den her sammenhæng er. At hvis man skriver som A1 i sin global.asa, er årsagen til eksekveringen af en funtion i session_onEnd netop, at en session er udløbet. Og hvis den er udløbet, hvordan kan man så indbringe den i funktionen???
global.asa og de 4 indbyggede rutiner, deriblandt Session_OnEnd er specielle, idet de aut. kører når hhv. applicationen og sessionen starter og ender. Serveren holder selv øje med hvilke sessioner der er aktive og hvornår de udløber. En session dør enten når den eksplicit afsluttes med Session.Abandon eller når serveren opdager at den er timet ud, dvs. når den ikke har været anvendt i x minutter.
man kan vel også sige at sessionen ikke er udløbet endnu, det skal jo først i gennem den funktion der er lavet til at lukke den "helt" ned for den (session_onend) ?
jeg har ikke været ude for at det ikke har virket, men det kan da være at der er tilfælde hvor det går galt?
a1 >> så har du tydligvis aldrig prøvet på IIS4/NT4. IIS4 som mange webhoteller stadig anvender, har en kendt bug der betyder, at Session_OnEnd kun kører i 95-97% af de situationer hvor der ikke laves en eksplicit end af sessionen med Session.Abandon.
Det er godt nok mystisk det her. Jeg prøvede først blot at skrive i global.asa, som jeg gør i resten af mine koder set rs = Server.CreateObject("ADODB.recordset") ..... rs.Delete ..... rs.close Det virker nogengange. Charmerende.
næææ, ikke hvor jeg har brugt det.. jeg har lavet noget med cookies og db, som jeg har brugt langt de fleste gange, mere fordi man så ikke bruger sessions overhovedet
men det vil jeg da huske, jeg har 2 nt4 server licencer, og en dag skal man vel bruge dem til noget :o)
Hvis min session.timeout fungere og jeg i global.asa skriver: sub Session_onEnd Application("virknu") = "Hallu?" end sub
og i en anden asp fil, om opdatere konstant, skriver <%=application("virknu")%>. Burde den anden asp fil så ikke skrive "Hallu?" ?. For det gør den nemlig ikke
Ja, det er rigtigt. Hvis det er den asp fil den opdatere. Men hvis nu man har tre sider? 1.asp - hvor sessionen bliver indlet global.asa - det rene tivoli 2. asp - som bliver opdateret hele tiden. måske en default.asp - som et framesæt til både 1 og 2.asp
Hvis begge filer er åbnet uder samme session, eks. hvis du åbner 1.asp i browseren og derefter åbner et nyt vinduet med CTRL+N, så mener jeg begge vil køre under samme session. Dette vil sandsynligvis sabotere din test :-)
Synes godt om
Ny brugerNybegynder
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.