PHP sessies beperken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met iets in PHP/HTML te bakken waarbij sessies gebruikt worden. Nu is dit geen probleem. De sessie variabelen enzo worden opgeslagen in tijdelijke bestanden op de harde schijf van de webserver (Apache).

Nu moet ik echter het maximum aantal simultane gebruikers zien te beperken. (i.v.m. een licentie methode).

Ik had al gedacht om de sessies op te slaan in de database, maar hoe pak ik dit het beste aan? Ik denk dat deze methode ten nadele van de performance werkt.
Bovendien maak ik gebruik van de ADODB library. Ik ben daarom op zoek naar een generieke oplossing en niet MySQL specifiek, waarvan vele oplossingen voor zijn.

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18

pietje63

RTFM

misschien heb je iets aan http://www.phpfreakz.nl/library.php?sid=8887 is een script van iemand dat kijkt hoeveel users er online zijn mbv sessies

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 08-09 13:47
Dit is behoorlijk eenvoudig te doen als je je sessies in een DB hebt staan, lijkt me ook wat efficienter want anders moet je (IIRC) alle tig losse sessie files doorlopen bij iedere login, iets dat niet echt netjes is IMO al helemaal niet omdat er tijdens die login een aantal sessie files geopend kunnen zijn.

Zorg dus dat je sessies in een DB komen staan en dan kan je met een enorm simpele SELECT uitvogelen hoeveel mensen er online zijn.

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

bartvb schreef op 29 June 2003 @ 03:33:
Dit is behoorlijk eenvoudig te doen als je je sessies in een DB hebt staan, lijkt me ook wat efficienter want anders moet je (IIRC) alle tig losse sessie files doorlopen bij iedere login, iets dat niet echt netjes is IMO al helemaal niet omdat er tijdens die login een aantal sessie files geopend kunnen zijn.

Zorg dus dat je sessies in een DB komen staan en dan kan je met een enorm simpele SELECT uitvogelen hoeveel mensen er online zijn.
Het kan redelijk eenvoudig denk ik:
Maak een tabel aan als volgt: tabelnaam(sessionid,timestamp). sessionid is de primekey.
Bij iedere pagina die geladen voer je de volgende querie uit:
replace into tabelnaam (sessionid,timestamp) values ($sessid,$now)

En om te kijken of je licentie niet overschreden is:
select count(*) from tabelnaam where timestamp > $now+60

[ Voor 9% gewijzigd door kvdveer op 29-06-2003 10:34 ]

Localhost, sweet localhost