/ / Ist es möglich, die Sitzung auch nach dem Schließen des Browsers zu behalten? - PHP, Sitzung

Ist es möglich, die Sitzung auch nach dem Schließen des Browsers zu behalten? - PHP, Sitzung

Kann jemand sagen, wie man eine Sitzung (in PHP) aufrechterhält, so dass die Sitzung erhalten bleibt und auch nach dem Neustart des Browsers zugänglich ist.

Im Allgemeinen läuft eine Sitzung mit dem Schließen eines Browsers ab, aber ich möchte, dass die Sitzung NICHT GESCHLOSSEN ist, damit auf die Sitzungsdaten bei der nächsten Verwendung des Browsers zugegriffen werden kann.

Antworten:

19 für die Antwort № 1

Benutzen session_set_cookie_parameters() Geben Sie dem Sitzungscookie vor dem Starten der Sitzung eine Lebensdauer ungleich null, oder legen Sie fest session.cookie_lifetime zu nicht Null.


8 für die Antwort № 2

Es ist Oxymoron.
Session steht für "bis der Browser geschlossen ist".
Sitzung ist etwas, das läuft ab.
Wenn Sie nicht wollen, dass es abgelaufen ist, wollen Sie wahrscheinlich überhaupt keine Sitzung.

Sie vermasseln wahrscheinlich Sitzung mit Plätzchen oder Datenbank.


4 für die Antwort № 3

Session in PHP (und in den meisten Web-Technologien) funktionieren so:

Sie speichern eine Sitzungs-ID in einem Cookie auf dem Clientcomputer.

Wenn der Client auf Ihre Website kommt, sendet er Ihnen die Sitzungs-ID.

Der Server sucht die Sitzungsdaten in einer Datei mit der Sitzungs-ID und lädt sie.

Das Schließen des Browsers wirkt sich also nicht auf die Sitzung aus, aber wenn der Browser den Cookie löscht, wenn Sie ihn schließen (ich glaube nicht, dass ein Browser so etwas tut).

Wenn Sie sicher sein sollten, dass der Benutzer immer eingeloggt ist, können Sie seinen Benutzer / Passwort in seinen Cookies speichern, aber es ist nicht wirklich sicher.


2 für die Antwort № 4

Das einfachste und beste, was ich gefunden habe, ist, dass wir statt nur session_start dies auf jeder Seite eingeben sollten, auf der sich eine Sitzung befindet

$expire = 365*24*3600; // We choose a one year duration

ini_set("session.gc_maxlifetime", $expire);

session_start(); //We start the session

setcookie(session_name(),session_id(),time()+$expire);
//Set a session cookies to the one year duration

0 für die Antwort № 5

Sie können so etwas tun: (siehe session_set_cookie_parameters() und session_name())

// long long time
$sessionTime = 365 * 24 * 60 * 60;
$sessionName = "my_session";
session_set_cookie_params($sessionTime);
session_name($sessionName);
session_start();

if (isset($_COOKIE[$sessionName])) {
setcookie($sessionName, $_COOKIE[$sessionName], time() + $sessionTime, "/");
}

Zum $sessionTime, beziehen sich auch auf diese Frage


-1 für die Antwort № 6

Dies kann erfolgen, wenn Sie Cookies anstelle von Sitzungen verwenden.