Avatar billede KurtG Forsker
Oprettet i går kl. 13:06 Der er 7 kommentarer

Kan man registrere hvis folk lukker en side ned

Jeg har en side, hvor man kun kan komme ind med login.
På siden er der en  logout.-knap, så jeg kan registrere at man nu har forladt siden.
Men man kan jo også blot forlade siden ved at lukke den ned. Er det muligt at lave noget, som også registrerer det?
Avatar billede michael_stim Ekspert
Skrevet i går kl. 13:31 #1
Ikke en bulletproof metode, men man kan til dels bruge beforeunload event listener i JavaScript.
Avatar billede KurtG Forsker
Skrevet i går kl. 14:22 #2
Ja, der er der jeg kommer til kort, jeg kan ikke ret meget af det der Javascript.
Avatar billede ejvindh Ekspert
Skrevet i dag kl. 09:19 #3
Jeg synes jo grundlæggende du skal få sat dig ind i javascript. Så vidt jeg kan se, har du ret godt styr på php, og javascript er ikke sværere. Det handler bare om, hvorvidt du vil programmere, hvad serveren sender til brugeren, eller hvad brugerens egen browser kan gøre lokalt hos den enkelte bruger.

Jeg kender ikke andre metoder end den, som bliver nævnt i #1 til det, du specifikt spørger om.

Men hvis du insisterer på, at det skal laves i php, kunne du måske lave en workaround, som godt nok er lidt bøvlet og tung i brug, men som giver dig et indtryk af, om brugeren stadig er aktiv på siden. Det kan gøres ved, at du laver en tabel i databasen, hvor du registrerer tidspunktet for hver gang brugeren klikker ind på noget. Så kan du hver gang brugeren klikker på noget (og siden opdateres) få et indtryk af, hvor længe siden det er, at brugeren sidst klikkede. Og hvis der så f.eks. er gået et døgn (eller hvilken tidsfrist du nu finder naturlig) siden sidst, kan du måske godt konkludere, at brugeren har været væk i mellemtiden.
Avatar billede KurtG Forsker
Skrevet i dag kl. 14:11 #4
Jeg giver JS en chance, det lader til, at det kan løse andre ting, som jeg gerne vil og som ikke kan laves i php. Men min indlæringskurve er ret flad, det vil tage tid.
#3: Det ligne noget som en 'dødemandsknap', hvor man med mellemrum skal trykke på en knap for at få lov til at fortsætte på siden! Men det kræver jo en form for timer, og det kan man vel ikke i php (uden igen at ty til JS)?
Jeg kikker også lige på linken fra #4.
Avatar billede KurtG Forsker
Skrevet i dag kl. 14:23 #5
Jeg var inde på linket fra #3, men jeg fandt ikke noget, der for mig gav mening.
Men der er jo mange 'snippet' der, så jeg har nok ikke søgt rigtigt!
Avatar billede arne_v Ekspert
Skrevet i dag kl. 15:47 #6
Til det stillede spørgsmål om at registrere når folk forlader en side må lidt JavaScript være svaret.

Men til det ikke stillede spørgsmål om hvad man gør når folk lukke browseren eller går til et andet site, så vil jeg mene at den typiske løsning er at basere det på session timeout. Når brugeren ikke har sendt nogle request til sitet i N sekunder, så sletter serveren session og alle session variable. Manualen siger at default timeout er 24 minutter. Så hvis alt "udestående" er i session så bliver det håndteret fornuftigt. I tilfælde af at der skal udføres kode ved session timeout så har PHP en session_set_save_handler function hvor man kan blande sig i PHP's session håndtering.
Avatar billede KurtG Forsker
Skrevet i dag kl. 17:03 #7
Det ser interessant ud, men jeg kan ikke umiddelbart se, hvordan jeg skal bruge det!
Kan jeg lave et kald til den funktion, der laver logoff-registreringen i min database?
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