Logout aus einer Site
Thomas Liedl
- perl
0 n.d. parker0 FrankS
Hallo Self-Gemeinde!
Habe mit Interesse nach einem Thread gesucht, der ein "sauberes" Ausloggen aus einer
Site ermöglicht! Konkret gibt es auf einer Site einen geschützten Bereich, rein auf
Perl-Skripten basierend. Offiziell soll man natürlich diesen Bereich mit dem Logout-
Button verlasen. Wie erreiche ich, dass trotzdem ein "Logout-Skript ausgeführt wird, wenn
z.B. ein User einfach einen neuen URL eingibt im Browser, statt sich auszulogen oder noch
wilder, einfach das Fenster schließt oder gar den Browser!
Es soll also auch dann ein Skript ausgeführt werden, wenn der User nicht mehr reagiert,
damit alle Datenbanken sauber geschlossen werden und die ganzen temp-Dateien wieder
sauber vom Server gelöscht werden..... Gibt es da irgendwelche Tricks?
Thx im Voraus!!
TOM Liedl
P.S. "On Unload" bringt in diesem Falle nix...:-))
hi ho
Es soll also auch dann ein Skript ausgeführt werden, wenn der User nicht mehr reagiert,
damit alle Datenbanken sauber geschlossen werden und die ganzen temp-Dateien wieder
sauber vom Server gelöscht werden..... Gibt es da irgendwelche Tricks?
ja, du kannst fuer jeden eingeloggten User temp-files oder eine id o.ae. anlegen, wenn der user nach einer festgelegten zeit nichts mehr macht (10 Minuten oder so), verfaellt das ganze, ggf. muss er sich dann neu einloggen. Ueberpruefen tust du das ganze bei jedem Ausruf einer Seite/eines Scripts in deinem geschuetzten Bereich.
btw: ich glaube ne .htaccess ist einfacher :-)
cua
n.d.p.
Hi
btw: ich glaube ne .htaccess ist einfacher :-)
Das bei .htaccess Problem ist aber, das der User, sowie er sich einmal authorisiert, also eingeloggt hat, bis zum Schließen des Browsers oder bis zum Betreten einen _anderen_ realm authorisiert bleibt. D.h., besucht er zwischendurch andere Seiten (ohne .htaccess und ohne zwichendurch den Browser zu schließen) und kehrt dann in den geschützten Bereich zurück, kann er den betreten, ohne nochmal nach Username/pwd gefragt zu werden. .htaccess taugt also "nur" als Zugangsschutz. Um den User zu "überwachen", mußt Du was anderes machen. Du kannst z.B. zyklisch die Seite refreshen (<meta http-equiv="refresh" content="600; URL=http://www.domain.de/geschuetzte_seite/">). In der Seite rufts Du ein Script auf, das nichts weiter macht, als einen Zeitstempel + Username ($ENV) zu hinterlassen. Ein anderes Programm (nicht CGI, kann aber trotzdem Perl sein) startest Du alle 10 min auf dem Server (z.B. durch cron). Das löscht für alle "abgelaufenen" Zeitstempel die Temp-Dateien. Problematisch ist nur, wenn der User nach Löschen der Temp's auf die Seite kommt. Dann mußt Du alles wieder öffnen...
Gruß Frank