Toon posts:

[perl] - Na afsluiten browser script uitvoeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem:

Ik heb een login systeem gemaakt van een combinatie van database en cookies. Dit werkt allemaal goed op 1 ding na.

Als men de browser afsluit zonder op de uitlogknop te drukken blijft men gewoon ingelogd staan!
Nu wil ik dit oplossen door nog een script te runnen wanneer dit gebeurt, weet alleen niet hoe dit moet. :(

Nu weet ik dat er in ASP global.asa bestaat waar dit in kan, dus d8 ik zo dat dit in perl ook wel zou moeten kunnen.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Wil je het 100% maken zal je het aan de server kant moeten oplossen. Immers kan de stroom uitvallen en dan heb je niets aan een scriptje die werkt zodra een pagina wordt "afgesloten".

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Ja dit snap ik en dat is nou ook mijn vraag....

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
body onload=blaat() onunload=blaat2()

Verwijderd

ASP ondersteunt sessies, en deze genereren een time out event als de gebruiker een van te voren vastgestelde tijd niet een nieuwe pagina heeft aangevraagd. In de global.asa kun je dan code zetten om dit event af te vangen en evt. de gebruiker dus uit te loggen. Let wel: er wordt dus niet direkt na het sluiten van een browser iets gedaan, maar pas nadat er een sessie time out is.

Er zijn voor Perl ongetwijfeld ook libs te vinden voor ondersteuning van sessies of misschien kun je dat zelf bouwen. Op zich kun je natuurlijk al heel veel doen met de expire tijd van een cookie.

Jouw meganisme zal afhankelijk van de aanwezigheid van een cookie checken of iemand is ingelogd. Natuurlijk kun je dit uitbreiden door met iedere pagina waarop een nog ingelogde user komt een nieuw cookie te versturen. Geef de cookie een expire tijd van bijv. 20 minuten en je hebt hetzelfde effect.

HTH :)

Verwijderd

Topicstarter
ja ok de cookies worden na een half uur niets doen (d.w.z. niet meer op links klikken) verwijderd... maar dan blijft er in de database nog staan dat die persoon nog online is.

Ik wil dus dan nog een database query kunnen doen.....

maar ja, in ieder geval al harstikke bedankt voor de reacties!

Verwijderd

Je zou in het inlogscherm een functie kunnen bouwen die alle 'expired logins' verwijdert. Zorg dat van een login ook bekend is wanneer die voor het laatst een pagina request heeft gedaan, en delete hem als dat langer dan x minuten is.

Dit wordt alleen heel erg database belastend met veel users, en daarom zijn sessies ook prettig omdat de meeste session handlers 'in memory' zijn, en dus niet in een database opslaan en daarom veel sneller zijn.

HTH :)

Verwijderd

Topicstarter
Ok bedankt MrX, ik weet nu in ieder geval genoeg...

Moet nu alleen ff bedenken wat ik dus doe....
met of zonder database tussenkomst!
Pagina: 1