Avatar billede jumpstart Nybegynder
26. juli 2001 - 23:17 Der er 35 kommentarer og
1 løsning

Session.abandon

Hvordan tilsikrer man bedst at når besøgende på ens hjemmeside forlader den eller lukker browseren så bliver \"logget ud\" vha. session.abandon.
(Når besøgende logger ind på hjemmesiden gemmes deres userid i en session)

Jeg har en forestilling om at det kan gøres ved at når brugeren forlader sitet, åbnes et nyt vindue som blot indeholder kommandoen session.abandon og derefter lukker vinduet.


Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:19 #1
din forestilling er korrekt :-)
Avatar billede netsrac Praktikant
26. juli 2001 - 23:21 #2
Det er jo ikke nødvendigt, sessionen udløber jo efter 20 min.
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:23 #3
netsrac:> men hvis nu du går ud fra en side og din søster går ind på den samme ser det ud som om du stadig er logget ind ...
Avatar billede jumpstart Nybegynder
26. juli 2001 - 23:23 #4
Hvad er javascript koden for at \"undersøge\" om brugeren lukker browseren eller forlader hjemmesiden?

Den sidste kode til session.abandon siden er vel
noget i retning af window.onload = close eller sådan noget :-)
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:24 #5
jumpstart:>

<body onunload=\"window.open ..\">

eller onblur .. kan ikke helt huske det ..
men den \"lukke\" side er nem:

<% Session.Abandon %>
<script>window.close();</script>
Avatar billede netsrac Praktikant
26. juli 2001 - 23:26 #6
tdaugaard >> Min søster har ikke noget at gøre på min com :-)

Den teori gør sig også kun gældende hvis computeren ikke bliver genstartet imellem tiden.
Avatar billede jumpstart Nybegynder
26. juli 2001 - 23:26 #7
Jeg ved godt at en session udløber efter 20 min.

Men hvis man har et stort antal brugere og disse ikke benytter sig af logout så vil serveren bare bruge en masse unødig ram som forringer performance. (så er det jo også dårlig programmering ikke at tage højde for sådan noget :-) )
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:32 #8
netsrac:> \"Den teori gør sig også kun gældende hvis computeren ikke bliver genstartet imellem tiden.\"

genstarter du tit din computer da !?
Avatar billede netsrac Praktikant
26. juli 2001 - 23:34 #9
Nææ...min kører jo i døgn drift, men når jeg er hjemme hos de gamle bliver den genstartet hvergang, eller vi logger ihvertfald af og på også er de også væk. Men okay, det er sikkert en meget god ide at fjerne dem :-)
Avatar billede jakobandersen Nybegynder
26. juli 2001 - 23:35 #10
Du kan også sætte Session timeouten ned, og derved bliver folk hurtigere logget ud ved inaktivitet.
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:36 #11
netsrac:> *G* ligesom min ... og XP går jo ik ned sååe *GG*
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:54 #12
jumpstart:> WHAT !?
Avatar billede jumpstart Nybegynder
26. juli 2001 - 23:56 #13
tdaugaard: onblur og onunload virker ikke til det jeg skal bruge.

onunload: når jeg submitter en form på siden logges man ud (der er ikke meningen)

onunload: tjae, alt går i kage og det vindue med abandon tingen popper hele tiden op. :-(
Avatar billede jumpstart Nybegynder
26. juli 2001 - 23:57 #14
Funktionen skulle være at hvis man lukker sin browser eller forlader hjemmesiden så skulle funktionen køre.
Avatar billede jakobandersen Nybegynder
26. juli 2001 - 23:58 #15
Hvorfor vil du ikke sætte Session timeout ned?
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:58 #16
jumpstart:> well, det er den eneste måde at lave det på .. check dating.dk .. hvis du opdaterer deres side så popper det lille vindue også op ..
Avatar billede tdaugaard Nybegynder
26. juli 2001 - 23:59 #17
moonduck:> det afhjælper stadig ikke problemet ... og hvis du sætter det til f.eks. 5 minutter, hvad så hvis en bruger bruger 10 mins på at læse et eller andet imens han/hun er logget ind ?
Avatar billede jumpstart Nybegynder
27. juli 2001 - 00:00 #18
Allright så må jeg lægge hovedet i blød om hvilken funktion jeg helst vil benytte :-|

tdaugaard giv mig et svar og collect points.
Avatar billede jumpstart Nybegynder
27. juli 2001 - 00:02 #19
moonduck, tdaugaard har ret. Jeg har en formular som er rimelig lang med en masse forklarende tekst. Derfor er det ikke utænkeligt at en bruger vil kunne \"dvale\" over informationen i op til 5-10 min. Derfor vil jeg ikke kunne bruge det i denne situation.
Avatar billede tdaugaard Nybegynder
27. juli 2001 - 00:03 #20
:-)
Avatar billede jumpstart Nybegynder
27. juli 2001 - 00:04 #21
Here u go.
Avatar billede tdaugaard Nybegynder
27. juli 2001 - 00:04 #22
Har nemlig selv prøvet det med at sætte session.timeout ned .. BAD IDEA :o(
Avatar billede jumpstart Nybegynder
27. juli 2001 - 00:08 #23
Det er jeg bestemt heller ikke tilhænger af.
Egentligt bryder jeg mig ikke om sessions da de hurtigt kan æde en masse Ram. Men cookies mener jeg heller ikke er løsningen.
Så enten må jeg skaffe mere Ram eller være kreativ :-)
Avatar billede tdaugaard Nybegynder
27. juli 2001 - 00:09 #24
jumpstart:> hmm .. Sessions er jo faktisk bare en cookie med nem adgang til og lidt udvidede muligheder ...
Avatar billede jumpstart Nybegynder
27. juli 2001 - 00:17 #25
tdaugaard, joe det har du ret i.
Avatar billede jakobandersen Nybegynder
27. juli 2001 - 00:19 #26
tdaugaard>> Det med sessiontimeout kan være en god ide i nogle situationer.

jumpstart>> Du kan bruge en anden metode, nemlig at alle links sætter en variabel altså så interne links ser sådan her ud:

<a href=\"blah.html\" onClick=\"variabel=true\">Link</a>

Og så i onunload laver du en funktion ala denne:

function DoUnload(){
if(!variabel){
window.open(\"dropsession.asp\")
}
}

tdaugaard>> Nej, En session er et stykke data der opbevares på serveren, blot for at man kan identifivere denne datapakke sender man et SessionID til klienten som gemmes i en cookie.
Avatar billede tdaugaard Nybegynder
27. juli 2001 - 00:26 #27
moonduck:> hmm .. okay .. der var ellers en der en gang påstod at sessionsdata gemmes hos klienten.
Avatar billede jakobandersen Nybegynder
27. juli 2001 - 00:30 #28
Nej kun SessionIDet.
Avatar billede jumpstart Nybegynder
27. juli 2001 - 08:58 #29
moonduck> God ide.!
Den tror jeg at jeg vil arbejde videre med.
Avatar billede jumpstart Nybegynder
27. juli 2001 - 10:14 #30
Jeg fandt en løsning (den virker nemmere):

Lav en frame side med en topframe på 1pixel.

Sæt følgende kode ind i frameset:
OnBeforeUnload=\"self.window.open(\'logoff.asp\',\'new window\')\"

tdaugaard\'s kode smides så ind i logoff.asp.

Når personen forlader framen eller lukker siden logges man automatisk ud.

(Det gør ikke noget at benytte frames her da siden ikke skal bruges på søgerobotterne anyway.)
Avatar billede jakobandersen Nybegynder
27. juli 2001 - 10:32 #31
Du mister bare muligheden for at bookmarke.
Avatar billede jumpstart Nybegynder
27. juli 2001 - 10:36 #32
moonduck> Hvad mener du?
Avatar billede jakobandersen Nybegynder
27. juli 2001 - 10:55 #33
Folk kan ikke bookmarke dine undersider, de vil altid få bookmarket dit frameset
Avatar billede jumpstart Nybegynder
27. juli 2001 - 11:09 #34
Nåe, der er også helt fint. For hvis de vil bookmarke en af undersiderne bliver de alligevel henledt til framesiden for at logge ind.
Avatar billede stigc Nybegynder
04. august 2001 - 01:32 #35
moonduck>> Dit trick spiller ikke helt, da unonload eventet også bliver kaldt når man bruger frem og tilbage knapperne i browseren :)
Avatar billede jakobandersen Nybegynder
08. august 2001 - 11:57 #36
stig>> Fy, fy brugeren må jo ikke bruge frem og tilbage knapperne det er jo lige før at det er en feature :-D
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