09. august 2010 - 10:22Der er
3 kommentarer og 1 løsning
Forlad siden = log af
Jeg har et problem..
På min side kan man logge sig ind som bruger, men hvis man glemmer at logge af, og bare besøger en anden side i samme vindue kørerer $_SESSION'en jo stadigvæk.
Er det muligt at afslutte en session når at brugeren forlader siden?
Ikke rigtigt, uden at du kommer over i noget javascript.
Men har du en fil som includes på alle sider ? Så kan du ved hver request tjekke hvor brugeren er, samt om en bestemt session er sat, og evt. bruge unset() for at slette en session.
en måde at gøre det på er, at have et tidsstempel i din bruger database. hver gang en authed bruger laver en request, logger du tiden i basen (overskriver den gamle). det vil sige, at du kan bruge det felt til at afgøre, om en bruger har lavet en aktivitet indenfor f.eks. de sidste 5 minutter, og så kan du jo beslutte, at man bliver logget af, hvis man ikke har lavet en aktivitet indenfor 5 minutter. det er den måde de fleste online-lister på communitysites er lavet på.
derudover, hvis du har links til eksterne sider, som ikke åbner i nye vinduer (hvilket dog er sjældent), så kan du jo med javascript og ajax også reagere på, at brugeren nu bevæger sig væk fra sitet via disse links.
men at reagere på, at brugeren lukker sit browservindue og ikke længere er på din side, eller vælger at skrive en ny url i adresse-linien og på den måde navigerer væk fra din side, er ikke noget man umiddelbart lige kan håndtere. Jeg vil klart anbefale dig at bruge en variant af tidsstemplet som beskrevet ovenfor. Det er måden at gøre det på :)
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.