Session/Cookie einde
Hallo allemaal,
Ik vroeg mij af of je een sessie of cookie laten beïndigen zodra iemand van je pagina weg gaat.
Nu blijven ze staan tot wanneer ik mijn browser sluit, maar dat is dus niet wat ik wil.
Iemand toevallig een idee hoe ik dit het beste op kan pakken?
Alvast bedankt!
Ik vroeg mij af of je een sessie of cookie laten beïndigen zodra iemand van je pagina weg gaat.
Nu blijven ze staan tot wanneer ik mijn browser sluit, maar dat is dus niet wat ik wil.
Iemand toevallig een idee hoe ik dit het beste op kan pakken?
Alvast bedankt!
Nee, dat kan niet.
Je kunt ze wel laten verlopen na een bepaalde tijd...
Quote:
zodra iemand van je pagina weg gaat.
Dit kan je op verschillende manier oppakken. Maar je bedoeld waarschijnlijk het sluiten van een tabblad?
Dan zou je even moet kijken naar javascript: onbeforeunload en dan gewoon sessie sluiten.
Maar of het handig is? Waarom zou je dit precies willen doen?
Volgens mij vraagt TS of hij de sessie van website A kan sluiten als hij vanuit dezelfde browser naar website B surft. Dus iemand zit op website A en gaat (door het intikken van de url of door het klikken op een link in site A) naar website B. Als ie op website B zit mag de sessie van website A niet meer geldig zijn. Als hij via een link naar website B gaat zou je de sessie kunnen killen. Als hij via het intikken van de url naar website B gaat dan kan het niet.
Nee dat klopt. Maar als de persoon gewoon een tabblad sluit kan het wel. En ook al gedacht aan, 'Gegevens opslaan en afsluiten' van firefox?
@Nico Kaag, wat bedoel je precies? Klopt hetgeen wat ik hierboven schrijf (over website A en B) of gaat het om sluiten van tabbladen?
Waarom zou je dat in een cookie doen en niet in de sessie?
TS heeft het toch ook over een cookie en sessie? Het is gewoon een algemene vraag.
Sessies zijn daar voor gemaakt
@Ozzie, ja, jou idee over wat ik wil klopt helemaal.
Wat mij wel leuk leek, was om aan de hand van iets dergelijks tijd op de site te gaan meten.
Omdat zodra je een class/object in een sessie of cookie set, en het cookie word vernietigd/verwijderd, word de destruct aangeroepen.
Dan zou ik dus bij het binnenkomen van een site een sessie/cookie aan kunnen maken, en dan kan ik in de destruct van een object de tijd opslaan dat hij de site verliet.
@gnot, Sessies blijven bestaan zolang de browser niet word gesloten, of misschien dat het het tabblad is, maar dus niet als iemand door browsed naar een andere site.
Wat mij wel leuk leek, was om aan de hand van iets dergelijks tijd op de site te gaan meten.
Omdat zodra je een class/object in een sessie of cookie set, en het cookie word vernietigd/verwijderd, word de destruct aangeroepen.
Dan zou ik dus bij het binnenkomen van een site een sessie/cookie aan kunnen maken, en dan kan ik in de destruct van een object de tijd opslaan dat hij de site verliet.
@gnot, Sessies blijven bestaan zolang de browser niet word gesloten, of misschien dat het het tabblad is, maar dus niet als iemand door browsed naar een andere site.
Pim - op 28/11/2010 00:40:51:
Waarom zou je dat in een cookie doen en niet in de sessie?
Sessies gaan tegenwoordig ook via cookies (is ook beter).
Karl, je bedoelt dat de session_id in de cookie wordt opgeslagen neem ik aan? De data zelf niet uiteraard.
@Nicoow: iedere aanroep die je in een browser doet wordt door een server geinterpreteerd als een nieuwe aanroep. De server weet niet wie de aanroep doet. Door gebruik te maken van een sessie "herkent" de server jouw browser. Jouw browser stuurt telkens een sessie_id mee naar de server zodat de server weet "wie jij bent". Pas bij het afsluiten van de browser wordt deze sessie_id weggegooid uit de browser. Daardoor wordt jouw browser door de server niet meer herkend als je je browser opnieuw opent (je krijgt dan namelijk een nieuwe sessie_id). Maar zolang je browser dus blijft openstaan (en de sessie niet is verlopen) blijft de server jouw browser "herkennen" aan de hand van de sessie_id. Let wel, in internet explorer 8 wordt de sessie_id pas weggegooid als ALLE browserschermen zijn afgesloten. Stel je logt in een openbare ruimte (bibliotheek) in op IE8 en je gaat naar MSN.. checkt je mail en sluit de browser af... stel dat er dan nog een ander IE8 browserscherm openstaat dan kun je daarop inloggen op jouw MSN. Super gevaarlijk dus!
@Nicoow: iedere aanroep die je in een browser doet wordt door een server geinterpreteerd als een nieuwe aanroep. De server weet niet wie de aanroep doet. Door gebruik te maken van een sessie "herkent" de server jouw browser. Jouw browser stuurt telkens een sessie_id mee naar de server zodat de server weet "wie jij bent". Pas bij het afsluiten van de browser wordt deze sessie_id weggegooid uit de browser. Daardoor wordt jouw browser door de server niet meer herkend als je je browser opnieuw opent (je krijgt dan namelijk een nieuwe sessie_id). Maar zolang je browser dus blijft openstaan (en de sessie niet is verlopen) blijft de server jouw browser "herkennen" aan de hand van de sessie_id. Let wel, in internet explorer 8 wordt de sessie_id pas weggegooid als ALLE browserschermen zijn afgesloten. Stel je logt in een openbare ruimte (bibliotheek) in op IE8 en je gaat naar MSN.. checkt je mail en sluit de browser af... stel dat er dan nog een ander IE8 browserscherm openstaat dan kun je daarop inloggen op jouw MSN. Super gevaarlijk dus!
@Ozzie PHP: inderdaad, daarom via... Niet met :-).




