Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem des Sitzungsverlusts in PHP Jump

So lösen Sie das Problem des Sitzungsverlusts in PHP Jump

藏色散人
藏色散人Original
2021-09-14 09:18:063875Durchsuche

Lösung für die verlorene Sitzung im PHP-Sprung: 1. Öffnen Sie die entsprechende Datei mit Notepad. 2. Wählen Sie das Format aus, das im UTF-8-BOM-freien Format codiert werden soll. 3. Speichern Sie die Datei und laden Sie sie erneut auf den Server.

So lösen Sie das Problem des Sitzungsverlusts in PHP Jump

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

Wie kann das Problem des PHP-Jump-Sitzungsverlusts gelöst werden?

php-Sitzungsverlustmechanismus beim Springen zu einer Seite

1. Der Sitzungswert kann auf derselben Seite gespeichert und abgerufen werden, er kann jedoch nicht nach dem Überqueren von zwei Seiten abgerufen werden

2. Auf den beiden Seiten wurde die session_id festgelegt („myid“), der Wert kann nicht abgerufen werden.

  Überprüfen Sie nach der Verwendung von , dass das Verzeichnis, in dem die Sitzung standardmäßig gespeichert wird, nicht existiert

So lösen Sie das Problem des Sitzungsverlusts in PHP Jump

Grund 2

Thinkphp hat ein Projekt entwickelt, das nach Erfolg springt login Gehen Sie zur Anmeldeseite und geben Sie die Sitzung aus, nachdem Sie die Informationen übermittelt haben. Nach dem Seitensprung geht die Sitzung jedoch verloren und die Anmeldung kann nicht normal abgeschlossen werden.

Nachdem ich nach Informationen gesucht hatte, fand ich heraus, dass es die Ursache für die Bombe war. Aufgrund der Einschränkungen des COOKIE-Sendemechanismus kann in Dateien, die am Anfang dieser Dateien bereits ein BOM haben, das COOKIE nicht gesendet werden (da PHP den Dateiheader bereits gesendet hat, bevor das COOKIE gesendet wurde), also die Anmeldung und Abmeldung Funktionen sind ungültig. Alle Funktionen, die auf COOKIE und SESSION basieren, sind ungültig.

Der richtige Weg, damit umzugehen, besteht darin, die Stückliste einiger Dateien zu entfernen. Im Allgemeinen tritt das Stücklistenproblem in der Eintragsdatei auf, indem ich die Datei mit Notepad++ öffne und das in UTF zu kodierende Format auswähle -8 Stücklistenfreies Formatieren, dann speichern und erneut hochladen. Einfach auf den Server hochladen. Beachten Sie jedoch unbedingt, dass Sie die Quelldateien auf dem Server löschen müssen, bevor Sie die Stückliste entfernen und auf den Server hochladen. Durch das Hochladen kann die Stückliste nicht entfernt werden.

Sitzungsmechanismus

Sitzung ist ein Sitzungsmechanismus auf der Serverseite. Wenn der Client den Server auffordert, eine Sitzung zu erstellen, erkennt der Server zunächst, ob die Anforderung eine eindeutige Sitzungs-ID enthält hat bereits eine Sitzung für den Benutzer erstellt. Sobald eine Sitzung erstellt wurde, rufen Sie einfach die Sitzung des Benutzers auf der Grundlage der Sitzungs-ID ab, damit der Benutzer sie verwenden kann. Wenn keine Sitzungs-ID vorhanden ist, erstellt der Server eine neue Sitzung mit einer eindeutigen Sitzung ID für den Benutzer. Nach Abschluss der Erstellung wird die Sitzungs-ID vom Server an den Client zurückgegeben und lokal auf dem Client gespeichert. Da Cookies jedoch künstlich verboten werden können, ist dies der Fall Stellen Sie sicher, dass die Konversation während der Sitzung weiterhin verwendet werden kann, indem die URL umgeschrieben wird. Der Ausdruck lautet http://...../xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 Eine am Ende der URL angehängte Abfragezeichenfolge lautet der Ausdruck: Für http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 Es gibt keinen Unterschied zwischen diesen beiden Methoden für Benutzer, aber der Server verarbeitet sie unterschiedlich Beim Parsen ist es auch hilfreich, die Sitzungs-ID-Informationen von normalen Programmparametern zu unterscheiden.

Um den Status während der gesamten Interaktion aufrechtzuerhalten, muss diese Sitzungs-ID am Ende jedes Pfads enthalten sein, den der Client möglicherweise anfordert.

Ein weiteres Missverständnis zur Sitzungsungültigmachung:

Wenn wir über den Sitzungsmechanismus sprechen, hören wir oft das Missverständnis „Solange Sie den Browser schließen, verschwindet die Sitzung.“ Tatsächlich können Sie sich das Beispiel einer Mitgliedskarte vorstellen, wenn der Kunde das Geschäft nicht aktiv auffordert, die Karte zu stornieren, wird das Geschäft die Daten des Kunden nie ohne weiteres löschen. Dasselbe gilt für Sitzungen, sofern das Programm den Server nicht dazu auffordert, eine Sitzung zu löschen. Das Programm sendet normalerweise eine Anweisung zum Löschen der Sitzung, wenn sich der Benutzer abmeldet. Der Browser benachrichtigt den Server jedoch vor dem Schließen nie aktiv darüber, dass er geschlossen wird, sodass der Server keine Chance hat, zu erfahren, dass der Browser geschlossen wurde. Der Grund für diese Illusion ist, dass die meisten Sitzungsmechanismen Sitzungscookies zum Speichern von Sitzungs-IDs verwenden . und die Sitzungs-ID verschwindet nach dem Schließen des Browsers und die ursprüngliche Sitzung kann beim erneuten Herstellen einer Verbindung zum Server nicht gefunden werden. Wenn das vom Server gesetzte Cookie auf der Festplatte gespeichert wird oder eine Methode verwendet wird, um den vom Browser gesendeten HTTP-Anforderungsheader neu zu schreiben und die ursprüngliche Sitzungs-ID an den Server zu senden, kann die ursprüngliche Sitzung weiterhin gefunden werden, wenn der Browser aktiviert ist wieder geöffnet.

Dies liegt genau daran, dass das Schließen des Browsers nicht dazu führt, dass die Sitzung gelöscht wird, sodass der Server gezwungen ist, eine Ablaufzeit für die Sitzung festzulegen. Wenn die Zeit seit der letzten Verwendung der Sitzung durch den Client überschritten wird, kann der Server dies tun Bedenken Sie, dass der Client die Aktivität beendet und die Sitzung gelöscht wird, um Speicherplatz zu sparen.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des Sitzungsverlusts in PHP Jump. 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