Page 1 of 2 12 Last
  1. #1
    Dubbelpunt's Avatar
    Registered
    23/03/09
    Location
    Belgie
    Posts
    5,054
    iTrader
    5 (86%)
    Mentioned
    0 Post(s)

    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  

  2. #2
    MiniJeffrey's Avatar
    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 be
    no votes  

  3. #3
    Dubbelpunt's Avatar
    Registered
    23/03/09
    Location
    Belgie
    Posts
    5,054
    iTrader
    5 (86%)
    Mentioned
    0 Post(s)
    php / JS
    no votes  

  4. #4
    MiniJeffrey's Avatar
    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 be
    no votes  

  5. #5
    Dubbelpunt's Avatar
    Registered
    23/03/09
    Location
    Belgie
    Posts
    5,054
    iTrader
    5 (86%)
    Mentioned
    0 Post(s)
    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  

  6. #6
    MiniJeffrey's Avatar
    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 be
    no votes  

  7. #7
    Zero Grav's Avatar
    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  

  8. #8
    woony's Avatar
    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  

  9. #9
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    Quote Originally Posted by woony View Post
    This quote is hidden because you are ignoring this member. Show
    is dat sowieso niet zo? sessie is toch weg als je uw browser sluit? of mis ik iets?
    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  

  10. #10
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Quote Originally Posted by MiniJeffrey View Post
    This quote is hidden because you are ignoring this member. Show
    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?
    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 alieno
    Pastafarian by choice
    no votes  

  11. #11
    Jerre Muesli's Avatar
    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  

  12. #12
    Dubbelpunt's Avatar
    Registered
    23/03/09
    Location
    Belgie
    Posts
    5,054
    iTrader
    5 (86%)
    Mentioned
    0 Post(s)
    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  

  13. #13
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    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  

  14. #14
    Dubbelpunt's Avatar
    Registered
    23/03/09
    Location
    Belgie
    Posts
    5,054
    iTrader
    5 (86%)
    Mentioned
    0 Post(s)
    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  

  15. #15
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    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  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in