ERLEDIGT
JA
JA
ANTWORTEN
19
19
ZUGRIFFE
1074
1074
EMPFEHLEN
-
Hi,
ich habe versucht mit PHP ein automatisches Logout zu realisieren.
Leider klappt es nicht, da man bei PHP die Seite manuell aktualisieren muss.
Ein User hat mir mitgeteilt, dass es mit Hilfe eines Ajax Scriptes möglich wäre.
Es müsste dabei alle paar Minuten ein Request an den Server geschickt werden der die Zeit überprüft.
Und wenn die aktuelle Zeit größer ist als die Zeit in der Datenbank soll der User automatisch abgemeldet werde.
Kann mir hierbei bitte jemand helfen, da ich mit Ajax noch nicht zurecht komme.
Wäre super wenn mir jemand zeigen bzw. helfen könnte diese Script zu verwirklichen.
-
14.10.09 10:42 #2Maik Tutorials.de Gastzugang
Hi,
wenn du hier im JS-Forum beispielsweise nach "AJAX Timestamp" suchst, stolperst du über einen Lösungsansatz in dem Thema Uhrzeit in Div aktualisieren.
mfg Maik
-
Danke, schaue ich mir direkt mal an.
-
14.10.09 11:03 #4
Warum diese Zeitrequests? Unnötiger Ballast.
Versuch es mal mit php-Sessions. Anstatt regelmäßig abzufragen, ob er noch darf, drehst Du die Sache einfach um : Darf er noch, wenn eine Anfrage stattfindet.
Hier ein Link: http://tut.php-q.net/de/sessions.html
mfg chmeeMein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
Hi,
mit Sessions arbeite ich schon.
Nur das Problem liegt ja darin wenn jetzt der Benutzer beispielsweise für 20 Minuten nichts macht und in der Datenbank steht das er aber nur 10 Minuten zeit hat, aktualisiert sich seine Seite ja nicht automatisch.
Der soll dann auch schon nach den 10 Minuten auf eine Seite umgeleitet werden wo er sich wieder anmelden muss, wenn er was machen möchte.
Oder ist das vielleicht doch mit PHP möglich?
Das habe ich nicht hinbekommen. Wäre super wenn du mir zeigen könntest wie das geht.
-
Moin,
du kannst über einen Refresh-Header veranlassen, dass nach einer bestimmten Zeit zu einer bestimmten Adresse umgeleitet wird.
-
Hi,
geht das dann immer nur zu einer bestimmten zeit oder kann man das dynamisch regeln wenn sich die Uhrzeit in der Datenbank ändert?
-
Dieser Zeitpunkt müsste in dem Moment feststehen, zu dem die Seite geladen wird.
Aber ich wills mal so sagen: wenn du da generell ein Refresh nach 10min machst, wrde ich das für annehmbar ansehen..10min ist ja schon eine recht lange Verweildauer.
Aber du könntest auch einfach die Session-Dauer über session.gc_maxlifetime festlegen, das würde dir das ganze herumgelade ersparen.
-
Hi,
der Zeitpunkt bis man abgemeldet wird soll dynamisch erfolgen.
Sprich wenn man nichts tut läuft eine Countdown-Timer der anzeigt wann man abgemeldet wird.
Deswegen kann ich es nicht über session.gc_maxlifetime machen.
Es soll so funktionieren wie wenn man beispielsweise beim Online-Banking nichts mehr macht automatisch nach der Zeit abgemeldet wird.
Dort sind ja auch 10 Minuten angegeben, wenn man aber zum Beispiel eine Überweisung oder ähnliches tätigt wird die Zeit wieder verlängert und wenn man nichts macht automatisch abgemeldet.
-
17.10.09 14:36 #10
Wie wärs denn damit, dass Du die Session-Lifetime auf zB 10min stellst und auf Deiner Seite quasi mit jedem Neuladen der Seite lediglich einen Timer -10min einblendest (der runterzählt), welcher ROT wird, wenn 10min. vergangen sind. Damit ist er informiert, dass er (indirekt per lifetime) abgemeldet ist. Keine Ajax-Rückfrage, sondern nur eine Info.
mfg chmeeMein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
Hi,
ich habe mich mal an Sven Mintels Anleitung für einen einfachen Countdown-Timer versucht.
Siehe folgender Link:
http://www.tutorials.de/forum/1026043-post7.html
Das würde bei mir auch passen, nur bei jedem aktualisieren wird der Wert aus der Datenbank erneut geladen und somit fängt der Timer erneut an von anfang an runter zu zählen.
Bei mir soll es aber so sein, solange kein weiterer User angemeldet ist kann ruhig der Wert wieder übernommen werden, aber wenn ein weiterer User versucht sich anzumelden soll sich die Zeit nicht mehr auf den Ausgangswert aktualisieren sondern selbst wenn man manuell aktualisiert bis auf 0 runterzählen und dann auf eine andere Seite weiterleiten.
Wäre super wenn mir jemand dabei helfen könnte, weil ich einfach nicht drauf komme.
-
18.10.09 11:51 #12
Meine Überlegung : Wenn man die Seite lädt, wird auch der Timer in der DB aktualisiert. Ab da hat man zB 10 Minuten Sessionzeit bis zur automat. Abmeldung. (Sessions aktualisieren sich ja bei Reload oder sessionwertigen Seiten selber)
Ergo ist der Ansatz bei Reload den Timer wieder bei 10Min. starten zu lassen gar nicht so falsch, oder?
mfg chmeeMein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
Ja, der Ansatz ist schon richtig,
So lange kein weiterer Benutzer sich anmeldet ist es ok.
Nur wenn ein weiterer Benutzer versucht sich anzumelden, wird in der Datenbank die Zeit nicht mehr aktualisiert und soll dann auch einfach runterzählen bis der angemeldete Benutzer automatisch abgemeldet wird.
Dann soll sich der Benutzer anmelden können der sich versucht hatte anzumelden.
Aber im Moment wird die Zeit immer aktualisiert auch wenn sich ein weiterer User versucht hat anzumelden, sodass er theoretisch niemals reinkommt, was ja nicht der Zweck der Sache ist.
Bis jetzt habe ich auch schon einen Timer, der runterzählt aber der leitet nicht weiter wenn die Zeit erreicht ist sondern bleibt einfach bei 00:00:00 stehen.
-
18.10.09 12:16 #14
Jeder Nutzer hat doch eine eigene Session.. Ergo läuft bei jedem Nutzer eine eigene Instanz des Zählers (auch in der DB)..
Und zum Thema Timer auf 0 - 2 Möglichkeiten :
1. Es passiert wirklich nichts, außer dieser Timer wird rot, signalisiert damit, dass man abgemeldet ist (das wird er merken, wenn er Daten eingibt oder einen Reload macht (session Timeout)
2. Einfach einen Reload machen, wo dann die Sessionabfrage von sich aus die Abmeldung definiert. (Wenn nicht angemeldet, dann ist was Anderes zu sehen)
mfg chmeeMein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
Benutzt den DANKE-Knopf oder bewertet den Beitrag
"GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
-> Regexp <- -> php <- -> Javascript <-
-
Hi chmee,
ja genau so ist es.
Der Timer läuft runter bis auf 0.
Wenn man jetzt was macht, wird angezeigt das man abgemeldet wird und nichts mehr machen kann.
Dann kann sich der nächste User anmelden.
Aber das Problem liegt darin, wenn jetzt der angemeldet User bei dem die Zeit auf 0 runtergelaufen ist einfach nichts mehr macht, dann wird er auch nicht mehr abgemeldet und der nächste kann sozusagen sich nicht anmelden.
Wie kann ich denn einen automatischen Reload machen lassen wenn die Zeit auf 00:00:00 runtergelaufen ist?
Ähnliche Themen
-
flush in ajax request
Von vandamp im Forum PHPAntworten: 2Letzter Beitrag: 25.11.10, 10:52 -
Ajax Request in JSF
Von dreamer29 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 28.07.10, 06:17 -
Ajax Request & IE8
Von djnelly im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 08.01.10, 10:16 -
Ajax Request Problem
Von drabbit im Forum Javascript & AjaxAntworten: 10Letzter Beitrag: 10.08.09, 13:22 -
Problem mit Firefox & Prototype (Ajax.Request & Ajax.Updater)
Von RipmaV im Forum Javascript & AjaxAntworten: 14Letzter Beitrag: 09.05.09, 12:32





Zitieren

Login





