Session auf Aktivität prüfen

  • Themenstarter Themenstarter Lunaninchen
  • Beginndatum Beginndatum
L

Lunaninchen

Hallo liebes Forum,

ich suche bereits seit Tagen das Internet nach der Antwort auf meine Frage ab, leider ohne erfolg.
Kurz gesagt es geht um eine Überprüfung ob ein Nutzer, der sich Einlogen muss, auch irgendwas auf der Seite macht. Also Text eingibt, eine Auswahl über eine Selectbox tätigt usw.
Ich habe bisher überall gelesen, bei einer Aktivität der Session diese in eine Tabelle zu speichern.
Nur wie stelle ich die aktivität fest?
Darauf habe ich bisher leider noch keine Antwort gefunden.

Wäre super, wenn mir das irgendwer von Euch erklären könnte.

LG
Lunaninchen
 
Also wenn ein Besucher der Seite irgendwo Text eingibt oder einen Eintrag aus einer Selectbox auswählt schickt er ja anschließend die Seite auch ab.

Durch das Abschicken stellst du nun fest das der Besucher was gemacht hat.

Ich habe das auf einigen Seiten so gemacht das direkt beim laden der Seite geprüft wird ob jemand eingeloggt ist oder nicht, wenn ja wird die aktuelle Uhrzeit mitgeführt.

Dadurch kann ich prüfen ob der letzte Seitenaufruf/die letzte Aktivität z.B. länger als 5 Minuten zurückliegt. Dann ist die SESSION und somit der Login ungültig!!

Gruß Thomas
 
Vielen Dank für die raschen Antworten.
Das scheint genau das zu sein, wonach ich gesucht habe.
 
@Gumbo: Weil ich nach einer gewissen Zeit der untätigkeit des Nutzer diesen automatisch ausloggen möchte. Dafür muss allerdings jede Aktivität dazu führen, dass die Zeit aktualisiert wird, damit dieser nicht zu früh augeloggt wird.

Problem bei der Umsetzung:
Mit Hilfe des Tutorials bin ich inzwischen gut voran gekommen. Allerdings bekomme ich eine Fehlermeldung und hab keine Ahnung was ich da falsch gemacht habe.
PHP:
session_set_save_handler(array(&$obj, 'open'),
                             array(&$obj, 'close'),
                             array(&$obj, 'read'),
                             array(&$obj, 'write'),
                             array(&$obj, 'destroy'),
                             array(&$obj,'gc'));
 public function destroy()
    {
    }
    public function gc()
    {
    }
Bei dem letzten array bekomme ich folgende Fehlermeldung angezeigt: Argument 1 is not a valid callback.
Ich hab schon versucht den returnwert auf true zu setzen, als lifetime eine zahl zu übergeben und alles leer zu lassen, es hat immer den Fehler hervorgebracht.
Hat dazu vielleicht noch wer eine Idee?
LG
 
Ich habe meine Tabelle so aufgebaut, das sich kein zweiter mit den selben Nutzerdaten einloggen kann.
Daher gibt es einen Onlinestatus in der Tabelle. Wenn also lediglich die Session verfällt, könnte sich der Nutzer nicht wieder einloggen, da der Wert in der Tabelle gleich bliebe.
Nun habe ich zwar schon mit Javascript und onunload es geschafft das der Nutzer beim Schließen des Fensters ausgeloggt wird, aber nicht jeder Nutzer lässt Javascript zu.
Ich möchte also erreichen, wenn ein Nutzer sagen wir zum Beispiel 30 Minuten lang keine Aktivität hatte, das dieser dann in der weise ausgeloggt wird, dass er sich sofort wieder einloggen kann. Dafür muss ich allerdings jede Aktivität speichern. Dadurch wäre es mir möglich, auch den Nutzer ein relativ rasches neues einloggen zu ermöglichen die aus Sicherheitsgründen kein Javascript zulassen.

Ich hoffe jetzt ist verständlich wozu ich die Prüfung auf aktivität einbauen möchte.

LG
 
Dadurch wäre es mir möglich, auch den Nutzer ein relativ rasches neues einloggen zu ermöglichen die aus Sicherheitsgründen kein Javascript zulassen.

http://de.selfhtml.org/html/kopfdaten/meta.htm#weiterleitung hat gesagt.:
<meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">

Statt 5 Sekunden nimmst die Verfallszeit und dazu die URL wo das Login-Formular ist.
 
Zurück