Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn die seitenübergreifende Bereitstellung von PHP fehlschlägt?

Was soll ich tun, wenn die seitenübergreifende Bereitstellung von PHP fehlschlägt?

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-06-22 16:44:061835Durchsuche

In diesem Artikel erfahren Sie, wie Sie das Problem des seitenübergreifenden Lieferfehlers von PHP lösen können. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Was soll ich tun, wenn die seitenübergreifende Bereitstellung von PHP fehlschlägt?

Dieser Artikel stellt hauptsächlich die Lösung für das Scheitern der seitenübergreifenden PHP-SESSION vor. Der Artikel stellt es ausführlich anhand von Beispielcodes vor. Es hat einen gewissen Referenz-Lernwert für alle, die es brauchen Verweisen Sie darauf

Heute möchte ich eine Sitzung verwenden, um die Benutzeranmeldebeurteilung zu realisieren, die als Erkundung der vorherigen Sitzung angesehen werden kann. Nach Überprüfung der Informationen ist der Betriebsmechanismus der Sitzung wie folgt:

Sitzung ist ein Sitzungsmechanismus auf der Serverseite. Wenn der Client den Server auffordert, eine Sitzung zu erstellen, prüft der Server zunächst, ob die Anfrage eine eindeutige Sitzungs-ID enthält Da die Sitzung des Benutzers entsprechend der vom Benutzer zu verwendenden Sitzungs-ID abgerufen wird, erstellt der Server eine Sitzung für den Benutzer, wenn keine Sitzungs-ID vorhanden ist. Erstellen Sie eine neue Sitzung mit einer eindeutigen Sitzungs-ID.

Nach Abschluss der Erstellung wird die Sitzungs-ID vom Server an den Client zurückgegeben und lokal auf dem Client gespeichert.

Im Allgemeinen ist der Mechanismus zum Speichern der Sitzungs-ID ein Cookie. Da Cookies jedoch künstlich verboten werden können, muss sichergestellt werden, dass die Sitzung nach dem Verbot von Cookies weiterhin durchgeführt werden kann, normalerweise durch Umschreiben der URL

Der Ausdruck lautet www .fckfs.com ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764, der andere wird als Abfragezeichenfolge an die URL angehängt, in der Form http://..... /xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcE bzWoWiBYEn LerjQ99zWpBng!-145788764 Diese beiden Methoden sind für Benutzer sehr nützlich. Es wird gesagt, dass es keinen Unterschied gibt, aber die Art und Weise, wie der Server beim Parsen damit umgeht, ist auch hilfreich, um 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.

Das Gleiche 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 verwenden Diese 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 die Der Browser wird erneut geöffnet.

Das liegt daran, dass das Schließen des Browsers nicht dazu führt, dass die Sitzung gelöscht wird, wodurch der Server gezwungen wird, eine Ablaufzeit für die Sitzung festzulegen. Wenn die Zeit seit der letzten Nutzung der Sitzung durch den Client diese Ablaufzeit überschreitet, kann der Server dies berücksichtigen Wenn der Client seine Aktivität beendet hat, wird die Sitzung gelöscht, um Speicherplatz zu sparen.

Okay, lasst uns viel Unsinn reden, lasst uns über die Lösung für den Sitzungsverlust sprechen:

1 sollte so weit wie möglich oben auf der Seite platziert werden; nicht in php.ini konfiguriert, Sie müssen die Sitzung vor jeder Sitzung manuell öffnen: session_start();

3 Sitzung ist eine super globale Variable in PHP, genau wie $_GET, $_POST, $_SERVER, also muss sie bei Verwendung groß geschrieben werden:

$_SESSION['username']=$username;

4. Beispiel für eine seitenübergreifende Übertragung: a.php-Seite überträgt $_SESSION['username'] an b.php:

a.php:

session_start();
$username=$_POST['username'];
$_SESSION['username']=$username;
?>

b.php:

session_start();
echo $_SESSION['username'];
?>

Empfohlen Lernen:

php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die seitenübergreifende Bereitstellung von PHP fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen