Toon posts:

[PHP] Aantal open sessions op server??

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey Tweakers,

Is het mogelijk om met php te checken hoeveel sessions er op dat moment draaien op de server? Ik heb me scheel gezocht maar kan er nergens iets over vinden. Ik heb het nodig om de restrictie te maken dat er maar 1 user mag inloggen op een systeem. Iemand hier ervaring mee??

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Tel het aantal sessie bestanden in je tmp-dir.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

je kan (ERG VIES) in de /tmp dir kijken, maar aangezien daar alle sessies van de server (dus ook van andere sites die op de server draaien) worden opgeslagen is dat eigenlijk geen optie.

andere oplossing is om in een database, of textfile een waarde weg te schrijven wanneer iemand inlogt. Zo kan je bij de volgende login checken of er al een user actief is. Het knopje uiloggen zorgt er weer voor dat je de waarde reset oid

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
Kan ik deze gewoon openen met een filehandler dan?? eventjes proberen..

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

thomaske schreef op 22 oktober 2002 @ 15:46:
je kan (ERG VIES) in de /tmp dir kijken, maar aangezien daar alle sessies van de server (dus ook van andere sites die op de server draaien) worden opgeslagen is dat eigenlijk geen optie.

andere oplossing is om in een database, of textfile een waarde weg te schrijven wanneer iemand inlogt. Zo kan je bij de volgende login checken of er al een user actief is. Het knopje uiloggen zorgt er weer voor dat je de waarde reset oid


Ja, als iemand netjes op uitloggen klikt ;)

Dit zijn dingen die nog best lastig te implementeren zijn.

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Bosmonster schreef op 22 oktober 2002 @ 16:38:

[...]


Ja, als iemand netjes op uitloggen klikt ;)

Dit zijn dingen die nog best lastig te implementeren zijn.
dan moet je een timeout erbij opslaan, wanneer er 10 minuten niets is gedaan op de site, wordt automagisch uitgelogd..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Kan ik deze gewoon openen met een filehandler dan?? eventjes proberen..
opendir zoek je imho (inderdaad erg smerig)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

thomaske schreef op 22 oktober 2002 @ 16:41:
[...]


dan moet je een timeout erbij opslaan, wanneer er 10 minuten niets is gedaan op de site, wordt automagisch uitgelogd..


Jawel, dan is je sessie uitgelogd, maar niet de waarde in de database. Dan weet je dus nog niks of iemand nog ingelogd is ja of nee (in het idee van, iemand anders vanaf een andere computer mag niet inloggen onder dezelfde username).

Mogelijkheden zijn een eigen DB sessionhandler te maken, of een cronjob laten draaien die de serverside cookies/DB checkt en eventueel gebruikers in de DB uitlogd.

Een sessie != unieke username.. en dat is nu juist het probleem ;)

  • DiNo!
  • Registratie: Juni 2000
  • Laatst online: 17:00
Misschien kan je iets doen met de ideeen die op deze pagina staan :P : http://www.zend.com/codex.php?CID=341

https://github.com/atoomnetmarc/


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Bosmonster schreef op 22 oktober 2002 @ 17:48:
Jawel, dan is je sessie uitgelogd, maar niet de waarde in de database. Dan weet je dus nog niks of iemand nog ingelogd is ja of nee (in het idee van, iemand anders vanaf een andere computer mag niet inloggen onder dezelfde username).

Mogelijkheden zijn een eigen DB sessionhandler te maken, of een cronjob laten draaien die de serverside cookies/DB checkt en eventueel gebruikers in de DB uitlogd.

Een sessie != unieke username.. en dat is nu juist het probleem ;)
je kan het een DB sessionhandler noemen (dat is het namelijk ook ;)), maar het is vrij simpel op te lossen.
wanneer iemand ingelogd is, sla je de huidige timestamp op; iedere keer wanneer je een pagina opent oid, werk je de timestamp bij.
wanneer iemand in wil loggen, en de timestamp in de database is niet ouder dan (bijv.) 10 minuten, dan is het 'bezet'. Als er 10 minuten geen activiteit is vertoond, kan (en moet) er dus weer ingelogd worden. :)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."

Pagina: 1