Avatar billede agerled Nybegynder
17. januar 2004 - 11:14 Der er 12 kommentarer

Logge bruger ud ved lukning af vindue

Hej

Hvordan logger jeg en bruger ud når vedkommende lukker browseren?

Jeg mener hvordan kan activere en funktion når man lukker vinduet?
Avatar billede websam Nybegynder
17. januar 2004 - 11:20 #1
Hvis dit login system bruger Session sker det automatisk når bruger lukker et vindue hvis ikke det er tilfældet kan du jo tjekke op på om en bruger har logget af og hvis ikke han/hun har det kan du skrive en besked om at der ikke er logget af :o)

/Websam
Avatar billede runesoft Nybegynder
17. januar 2004 - 11:38 #2
Du kan ikke se serverside at brugeren lukker sin browser (heller ikke hvis du bruger sessions). Du blver nødt til at kode noget clientside javascript der gør serveren opmærksom på at browseren bliver lukket.
Avatar billede eagleeye Praktikant
17. januar 2004 - 11:50 #3
Der skulle kommer et session_onEnd event, men det er bare ikke altid det viker så godt. Det er ikke alle session man får onEnd på.

En anden metode er at lave et pop-up vindue når siden forlades og så logger brugeren ud og lukke pop-up vinduet. Det forudsætter så at brugeren ikke har pop-up killer eller ligne.
Avatar billede squashguy Nybegynder
17. januar 2004 - 11:55 #4
Mange vælger dog bare at ignore dette. Session_id går alligevel tabt, når brugeren lukker vinduet. Og han bliver automatisk logget af, når sessionen timer ud.
Avatar billede eagleeye Praktikant
17. januar 2004 - 12:03 #5
Når man har behov for den funktion så det nok typisk fordi man har en "hvem er online" liste. Og gerne vil fjerne den som logger ud. Eller logou tidspunktet for en bruger så man kan se online tiden for en bruger.
Avatar billede squashguy Nybegynder
17. januar 2004 - 12:15 #6
Jep. Den tanke fik jeg også, da jeg trykkede send :)
Avatar billede stingbat Nybegynder
17. januar 2004 - 12:20 #7
Du får altid session_onEnd ... men der går jo bare 20 min, fra at brugeren sidst har hentet en side, til sessionen "lukkes".

Eneste måde, at sørge for at brugeren bliver logget ud, er vha.:
<body onunload="minfunktion();">...</body>
Avatar billede agerled Nybegynder
17. januar 2004 - 12:41 #8
hvis jeg bruger <body onunload="minfunktion();">...</body> så vil den jo logge ud hver gang jeg skifter side eller hvad?
Avatar billede stingbat Nybegynder
17. januar 2004 - 13:52 #9
Som sådan ja... desværre!

Dog kan du løse det, ved at lave en variabel som du ændre på, når du klikker på dine links - sådan at i sidste ende at minfunktion kun vil køre resten, når variablen ikke er ændret...

Lige for at illustrere:

function minfunktion()
{
  if (doLogout) {
// kode her som logger ud (åbner en popup eller lign.)
  }
}
doLogout = true;

<a href="nyside.asp" onclick="doLogout = false;">blabla</a>
Avatar billede agerled Nybegynder
17. januar 2004 - 15:09 #10
stingbat:

hvordan bruger jeg så din funktion når brugeren kun skal logges ud når vedkommende lukker browseren...??
Avatar billede stingbat Nybegynder
17. januar 2004 - 16:23 #11
Du kan ikke gøre det med 100% sikkerhed - desværre... Ikke som standarderne er (as far as I know).

Men hvis du ændre "doLogout", på de links du har, vil du automatisk sørge for, at der ikke bliver logget ud... Men ja - lidt besværligt :-s

Anyway - sessionen vil altid blive lukket efter 20 min (som standard, med mindre man selv har sat andet op).
Avatar billede agerled Nybegynder
17. januar 2004 - 16:33 #12
jeg har sat min session.timeout = 20 , men jeg har en iframe kørende i baggrunden hele tiden som refresher sig selv. er det den der gør at man ikke bliver logget ud efter 20 min..?
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