Frage

Derzeit habe ich in meinem PHP -Skript nach einem Benutzer Session_login = 1. aber ein Problem gespeichert. Ich habe die Gewohnheit, Firefox, Multi-Tabs zu verwenden (ich glaube, die meisten Menschen und alle heute haben Webbrowser-App mit mehreren TAB-Funktionen). Ich habe die Registerkarte mit der Sitzung geschlossen, aber den Browser nicht geschlossen. Nach ein paar Stunden komme ich wieder auf die gleiche Seite, auf der ich mich anmelden muss, aber es tut es nicht. Ich muss mich nicht wieder anmelden (ich denke, das heißt "Sitzung"). Gibt es trotzdem, dass der Benutzer abgelehnt wird, wenn er die Registerkarte schließt, stattdessen den Browser zu schließen?

Ich habe gerade 1 Lösung, Zeit-Idle-Kick raus. Aber ich habe sehr begrenzte Kenntnisse in Datum/Uhrzeit in PHP, daher wäre dies die letzte Option. Ich wollte wissen, gibt es noch etwas, das ich tun kann, neben Zeit-Idle?

War es hilfreich?

Lösung

PHP hat eine einfache Möglichkeit, festzulegen, wie lange eine Sitzung dauern wird, bevor sie ausfällt:

session_set_cookie_params(3600); // make it expire after 1 hour

Geben Sie einfach die Anzahl der Sekunden weiter, die die Sitzung dauern soll (im Beispiel 1 Stunde = 60 Minuten = 3600 Sekunden).

http://us2.php.net/manual/en/function.session-set-cookie-params.php

Andere Tipps

Ein Sitzungs -Cookie wird nur aus dem Browser gelöscht, wenn die Browser -Sitzung geschlossen ist (dh wenn der Browser geschlossen ist): daher der Name. Wenn Sie möchten, dass die Sitzung kurz nach der Schließung der Registerkarte gelöscht wird, können Sie den Cookie (ca. 5 Minuten) eine sehr kurze Ablaufzeit festlegen und diese in der Datenbank speichern. Lassen Sie dann eine JavaScript -Funktion auf der Webseite jede Minute auf der Webseite eine Datei von Ihrem Server aufrufen: Diese Datei "aktualisieren" den Cookie/Datenbankeintrag für die nächsten fünf Minuten. Wenn sie Ihre Website länger als fünf Minuten verlassen, ist die Sitzung ungültig.

Sie können auch eine JavaScript -Funktion "Onun -Load" hinzufügen, die erkennt, ob sie die Webseite geschlossen oder zu einer anderen Seite gegangen sind Ich bin gerade auf einer anderen Seite auf Ihrer Website gegangen und habe nicht zwei Seiten von Ihrer Website auf zwei Registerkarten geöffnet.

Ich glaube, die Option, die Sie suchen, ist die Einstellung für das Ablauf des Sitzungs Cookie. Ich erinnere mich nicht an den PHP -Befehl dafür, aber Sie sollten in der Lage sein, den Cookie auf Ablauf des Fensters einzustellen.

Hier ist die PHP -Sitzungsdokumentation: http://us2.php.net/manual/en/book.session.php

Vielleicht könnten Sie Session_write_Close () verwenden?

Es gibt einen Kommentar zur PHP -Dokumentation für die Session_destroy -Funktion, die für Sie möglicherweise nützlich sein könnte: http://us2.php.net/manual/en/function.ession-destroy.php#71889

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top