login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session probleem (Opgelost)

Offline Sonaryr - 15/03/2009 12:32
Avatar van SonaryrNieuw lid Ik heb momenteel een profiel-pagina waar de status van de persoon wordt in getoond, deze wordt op online gezet wanneer men zich inlogt en op offline als men zich afmeld, maar als men de browser gewoon dicht doet wordt dit niet op offline gezet. wat is de beste manier om dit wel te doen?

3 antwoorden

Gesponsorde links
Offline Martijn - 15/03/2009 12:39
Avatar van Martijn Crew PHP dat komt omdat sessies client side zijn, dus aan de kant van het persoon. Wat je het beste kan doen is maken dat activiteit word bijgehouden, en als de laatste activiteit meer dan 15min geleden is ga je op offline.
Meteen maken dat als je offline gaat als afwezig gaat, is wel lastiger als je het persé zou moeten. Eigenlijk is meteen al niet echt haalbaa
Offline avdg - 15/03/2009 13:07 (laatste wijziging 15/03/2009 19:02)
Avatar van avdg PHP gevorderde dat gaat perfect als je de cookie geen verlooptijd geeft

effe opzoeken voor de nodige instellingen

ok, hier de link:

http://www.php....params.php

void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure= false [, bool $httponly= false ]]]] )

-> dus (zie verder waarom):

vaak is dat wel echter niet nodig, vanwege de standaardinstellingen

via php.ini:

http://www.php....e-lifetime

Citaat:
session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed


zorg dan wel dat session.use_cookies aan staat, dit kan je doen via je php ini instellingen (of .htaccess indien nodig).

edit: even wat meer duidelijkheid toegevoegd
Offline ArieMedia - 18/03/2009 12:21 (laatste wijziging 18/03/2009 12:31)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Ikzelf heb dit anders aangepakt, mede door jou probleem..

Als een gebruiker zich inlogt worden bij mij de normale sessies aangemaakt EN een array-sessie over de gebruiker..
De bevat:
- het IP
- de tijd van update + x minuten

Daarna controleer ik of de updatetijd kleiner is dan de huidige tijd,
Zo ja, update de sessie en schrijf de nieuwe tijd weg in de database (met gebruikersID uiteraard).

ik gebruik voor deze tijden de functie time(), aangezien de server hiermee moet rekenen, je geeft dit dus niet weer.

je haalt dus uit de database wie online zijn, voordeel van deze methode is overigens ook dat je kan uitrekenen hoeveel minuten iemand ingelogd is geweest!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s