Heim  >  Artikel  >  Backend-Entwicklung  >  Eine falsche Aussage über einen Sitzungsfehler

Eine falsche Aussage über einen Sitzungsfehler

巴扎黑
巴扎黑Original
2016-12-19 11:22:531127Durchsuche

Ich bin kürzlich auf ein Problem gestoßen, bei dem eine Ajax-Anfrage eine vorhandene Sitzung aufrief und dann eine Verarbeitung basierend auf der Sitzung durchführte. Ich habe festgestellt, dass die Sitzung manchmal Wirkung zeigte und manchmal nicht.

Die Sitzung wird in der Datenbank gespeichert, sodass es kein Problem mit Sitzungsinkonsistenzen durch den Zugriff auf verschiedene Server gibt.
Die Seite verwendet Lack. Zuerst dachte ich, dass Lack die Seite zwischenspeichert, was dazu führt, dass die Anfrage nicht an PHP ausgeführt wird, sondern den HTTP-Cache verwendet. Nach dem Klarlackieren habe ich immer noch dieses Problem.

Ich habe die angeforderte Seite erneut bereinigt und festgestellt, dass der vereinfachte und traditionelle chinesische Link im Header der Seite das HTML-Suffix verwendet. Dies führt möglicherweise zum Zwischenspeichern von HTML, was dazu führt, dass die Seite durch Klicken auf den Link darin generiert wird Header generiert nicht tatsächlich eine Sitzung. Natürlich gibt es keine Sitzung, um den Ajax dieser zwischengespeicherten Seite abzurufen.

Okay. Hier ist die Lösung:
1 Bringen Sie die Sitzungsparameter in Ajax und bringen Sie sie bei jeder Anfrage mit, sodass Sie sich bei der Verarbeitung nicht auf die Sitzung verlassen müssen.
2 Ändern Sie HTML in PHP. Wenn jedoch Lack oder eine andere Caching-Technologie verwendet wird, kann es ebenfalls zu den oben genannten Problemen kommen. Daher ist es am besten, die erste Methode zu verwenden, ohne sich auf die Sitzung zu verlassen.


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