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?
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.
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.
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.
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?
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.