Heim >Backend-Entwicklung >PHP-Problem >So lösen Sie das Problem des seitenübergreifenden Verlusts einer PHP-Sitzung
Lösung für den seitenübergreifenden Verlust einer PHP-Sitzung: 1. Legen Sie „session.use_trans_sid=1“ in „php.ini“ fest. 2. Übergeben Sie die Sitzungs-ID manuell über die URL oder ein verstecktes Formular. 3. Verwenden Sie Dateien oder Datenbanken usw . Speichern Sie „session_i“ im Formular.
Empfohlen: „PHP-Video-Tutorial“
Einführung:
Lösung für SESSION verloren (kann nicht seitenübergreifend weitergegeben werden) in PHP
Im Allgemeinen gibt es die folgenden Punkte, die dazu führen können, dass SESSION verloren geht :
1, Der Client hat Cookies deaktiviert
3. Session.use_trans_sid=0 in php.ini oder die Option –enable-trans-sid ist beim Kompilieren nicht aktiviert
Session Wird auf der Serverseite gespeichert (standardmäßig im Dateimodus gespeichert), ruft die Datei des Benutzers basierend auf der vom Client bereitgestellten Sitzungs-ID ab und ruft den Wert der Variablen ab. Die Sitzungs-ID kann das Cookie des Clients oder den Query_String verwenden Http1.1-Protokoll
(welches ist die „Zugriffs-URL“ ?“) an den Server, und dann liest der Server das Sitzungsverzeichnis ... Mit anderen Worten:
Sitzungs-ID ist die ID-Karte zum Abrufen der im Dienst gespeicherten Sitzungsvariablen. Wenn der Code session_start(); ausgeführt wird, generiert
eine Sitzungsdatei auf dem Server und generiert dann auch eine Sitzungs-ID, die dieser eindeutig entspricht
definiert die Sitzungsvariable, die in der gerade generierten Sitzung gespeichert werden soll Formular. Über die Sitzungs-ID kann
die definierten Variablen herausnehmen. Um die Sitzung zu verwenden, müssen Sie nach dem Überqueren der Seite erneut session_start() ausführen die zuvor erwähnte A-Variable in einer Sitzungsdatei,
, da diese Sitzungs-ID nicht der „Schlüssel“ zum Öffnen ist. Wenn Sie den Code session_id($session id); vor session_start();
hinzufügen, wird keine neue Sitzungsdatei generiert und
liest direkt die dieser ID entsprechende Sitzungsdatei.
Die Sitzung in PHP verwendet standardmäßig das Cookie des Clients, um die Sitzungs-ID zu speichern.
Wenn also ein Problem mit dem Cookie des Clients auftritt, wirkt sich dies auf die Sitzung aus. Es muss beachtet werden:
Sitzung muss nicht unbedingt auf Cookies angewiesen sein, was auch die Brillanz von Sitzungen im Vergleich zu Cookies ist.
Wenn die Cookies des Clients deaktiviert sind oder ein Problem auftritt, hängt PHP die Sitzungs-ID automatisch an die URL an.
Auf diese Weise kann die Sitzungsvariable über die Sitzungs-ID seitenübergreifend verwendet werden. Es gibt jedoch bestimmte Bedingungen für diesen Anhang, nämlich „session.use_trans_sid = 1 in php.ini oder die Option –enable-trans-sid ist während der Kompilierung aktiviert“.
Nachdem wir die oben genannten Prinzipien verstanden haben, lassen Sie uns nun Cookies beiseite legen und Sitzungen verwenden. Es gibt drei Hauptmethoden:
1 Setzen Sie session.use_trans_sid = 1 in php.ini oder aktivieren Sie beim Kompilieren die Option –enable-trans-sid. ,
Lassen Sie PHP die Sitzungs-ID automatisch seitenübergreifend weitergeben.
2. Übergeben Sie den Wert manuell über die URL und die Sitzungs-ID über das versteckte Formular.
3. Session_ID in einer Datei, Datenbank usw. speichern und während des seitenübergreifenden Prozesses manuell aufrufen.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des seitenübergreifenden Verlusts einer PHP-Sitzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!