Thread: Session logged in/out
-
23-03-2010, 13:42 #1
Session logged in/out
Op onze website kunnen mensen inloggen, en zij blijven dan ook 24 uur ingelogd. Als ze dus 23u niets doen, maar dan terugkomen (terwijl de browser dus nog openstaat), dan zijn ze nog ingelogd.
Nu hadden we echter graag gehad, dat indien die mensen hun browser sluiten, ze nadien terug moeten inloggen bij een revisit.
Is dit mogelijk??no votes
-
-
23-03-2010, 14:01 #2Approved 9liver
- Registered
- 24/10/07
- Location
- Harelbeke
- Posts
- 7,758
- iTrader
- 0
- Mentioned
- 2 Post(s)
- Reputation
- 1/446
Welke programmeertaal?
Let us pray for all the fools that beno votes
-
23-03-2010, 14:04 #3no votes
-
23-03-2010, 14:09 #4Approved 9liver
- Registered
- 24/10/07
- Location
- Harelbeke
- Posts
- 7,758
- iTrader
- 0
- Mentioned
- 2 Post(s)
- Reputation
- 1/446
Ik doe het zo in ASP.NET, maar ik vermoed dat het in php gelijkaardig is:
in pseudocode:
Als gebruiker website voor het eerst opvraagt (!Page.isPostback)
vernietig alle sessies
vraag login
maak sessie
Wat ik dus eig doe is de sessie verwijderen bij een nieuw bezoek en de sessie openhouden zolang de gebruiker rondsurft in dezelfde 'sessie'.Let us pray for all the fools that beno votes
-
23-03-2010, 14:27 #5
Om ons probleem op te lossen, hadden we graag een event getriggered, als iemand zijn browser sluit, want dan is hij wel degelijk WEG! Maar ik denk dat dit niet mogelijk is.
no votes
-
23-03-2010, 14:59 #6Approved 9liver
- Registered
- 24/10/07
- Location
- Harelbeke
- Posts
- 7,758
- iTrader
- 0
- Mentioned
- 2 Post(s)
- Reputation
- 1/446
de browser sluiten is denk ik inderdaad moeilijk te triggeren gezien je website over UDP gaat en die dus geen open connectie bijhoudt. Had het TCP geweest dan kan je makkelijk een event aanroepen bij het sluiten van de connectie, maar hier denk ik niet dat dat mogelijk is?
Let us pray for all the fools that beno votes
-
23-03-2010, 15:13 #7Member
- Registered
- 06/06/04
- Location
- Bilzen
- Posts
- 8,805
- iTrader
- 18 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 42/128
Er is wel een Javascript browser close event. Maar ik kan het even niet opzoeken, want mijn internet werkt weer maar half.
Ge zegt trouwens zelf dat het PHP/JS is waarin ge het wilt realiseren. Toch gebruikt ge die prefix niet. Dat is al de 3de keer hé.no votes
-
23-03-2010, 15:42 #8Approved 9-lifer
- Registered
- 03/12/03
- Location
- Oostende
- Posts
- 2,599
- iTrader
- 78 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 7/10
is dat sowieso niet zo? sessie is toch weg als je uw browser sluit? of mis ik iets?
no votes
-
23-03-2010, 18:05 #9
ja idd , de sessie stopt bij het sluiten van de browser of de session cookie wordt toch allesinds verwijderd. ( php houdt de PHPSESSIONID bij als cookie )
@topicstarter
Gebruikt ge cookies om de sessie te herinitialiseren bij bezoek aan website na het sluiten van de browser?
Optioneel is een javascript functie oproepen bij het onunload event van de body.
Die javascript functie roept dan via ajax een script op waarbij de session gecleared wordt. Ik heb dit ooit getest maar kkan niet met zekerheid zegge of het succesvol was
no votes
-
23-03-2010, 19:25 #10Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
HTTP gaat bij mijn weten nog steeds over TCP en niet over UDP, anders zou 't nogal leuk worden (want UDP komt in wezen neer op "fire and forget", het zou grappig worden als je dan begint te downloaden of data post naar een site).
Het probleem valt inderdaad op te lossen door PHP sessies te gebruiken, dus waarschijnlijk klopt de huidige logica om de sessie te verlengen gewoon niet...PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
23-03-2010, 21:30 #11Member
- Registered
- 08/09/02
- Location
- -
- Posts
- 2,044
- iTrader
- 9 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 3/6
Ik heb ergens eens een window.onUnload() gebruikt.
Dan deed ik een ajax call naar de server om uit te loggen. Dat werkte toch altijd.
Als het controleerbaar moet zijn zou ik het wel niet zo doen.no votes
-
24-03-2010, 09:24 #12
het is echt raar, in onze joomla back office kan je zien wie er allemaal ingelogd is, momenteel zien we de mensen die de laatste 24u waren ingelogd
ik heb dit getest:
- ik bezoek de website maar log niet in => joomla 0 logged in users
- ik log in => joomla 1 logged in user
- ik sluit de browser => joomla 1 logged in user
dit blijft zo 24u, omdat we het hebben ingesteld dat de mensen 24u ingelogd blijven,
ik zal hier vandaag eens wat code copy pasten, want wij willen uiteraard weten wie er effectief is ingelogd,
en niet wie er de laatste 24u allemaal heeft ingelogd
no votes
-
24-03-2010, 13:10 #13
er is wss een table in uw sql dat de sessies logged met een timestamp. Als gij zegt 24u gaat die wss gewoon in die table kijken wie er in die tijdspanne is ingelogd.
Dat heeft technisch eigelijk niks te maken met uw PHP sessie.no votes
-
24-03-2010, 15:00 #14
idd, als men zijn browser sluit, dan wordt die sessie vernietigd
maar Joomla bewaart die zelfde sessie in een cookie, als men de browser opnieuw opent, zal men dus onmiddellijk ingelogd zijn, want die sessie leest die informatie uit die cookie, met andere woorden: joomla denkt dus nog altijd dat die user ingelogd is... ook al sluit hij zijn browser...
als de user de LOG OUT button gebruikt, dan wordt er een rij verwijderd in de database, en dan zal hij niet meer voorkomen in de back office van joomla als 'logged in user'
maar dus zoals eerder gezegd, kunnen we die rij niet deleten in de database als iemand zijn browser sluit,
we kunnen dat niet triggeren...
iemand een voorstel hoe we dit kunnen oplossen?no votes
-
24-03-2010, 16:15 #15
de oplossing bestaat eruit de methode van sessie management aan te passen:
Bij het inloggen EN herinitialisatie van login met cookie EN terwijl ge activiteit monitored, een timestamp bijhouden en u daarop baseren. Niet op het feit ofdat iets in een database table staat of niet.no votes

