Heim >Backend-Entwicklung >PHP-Problem >So lösen Sie das Problem des seitenübergreifenden Verlusts einer PHP-Sitzung

So lösen Sie das Problem des seitenübergreifenden Verlusts einer PHP-Sitzung

PHPz
PHPzOriginal
2020-09-25 15:43:442988Durchsuche

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.

So lösen Sie das Problem des seitenübergreifenden Verlusts einer PHP-Sitzung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn