Heim Backend-Entwicklung PHP-Tutorial Lösung für das Problem der Sitzungsblockierung in PHP

Lösung für das Problem der Sitzungsblockierung in PHP

Aug 08, 2017 am 09:41 AM
php session Weg

Dieser Artikel stellt hauptsächlich das Problem und die Lösung der Sitzungsblockierung in der PHP-Programmierung vor. Er analysiert kurz die Prinzipien, Gründe und einfachen Lösungen der PHP-Sitzungsblockierung.

Die Beispiele in In diesem Artikel erfahren Sie mehr über Sitzungsblockierungsprobleme und Lösungen in der PHP-Programmierung. Geben Sie es als Referenz an alle weiter. Die Einzelheiten lauten wie folgt:

Wenn während der Sitzungsnutzung nach dem Öffnen der Sitzung derselbe Browser dasselbe Programm ausführt, werden verschiedene Seiten gesperrt. Dies ist in verschiedenen Browsern nicht der Fall.

Frage: Verursacht session_start die Blockierung?

Also habe ich ein paar Seiten geschrieben und sie getestet und festgestellt, dass die Sitzung die Blockierung verursacht hat, während die anderen beiden Situationen keine Blockierung verursacht haben.

Ich habe die PHP-Fehlerliste überprüft und festgestellt, dass jemand diese Frage gestellt hat:

Beschreibung:
------------
Aufruf session_start() scheint zu warten, bis andere Skripte beendet wurden

die dieselbe Sitzung verwenden. Ich vermute, dass die erste Anfrage die
Sitzungsdatei für die ausschließliche Verwendung sperrt, und die zweite Anfrage blockiert, bis
sie geöffnet werden kann.

Die offizielle Antwort von PHP lautet:

Vielen Dank, dass Sie sich die Zeit genommen haben, uns zu schreiben, aber das ist kein Fehler. Dies wird erwartet. Die Sitzungsdatei ist gesperrt, um eine Beschädigung zu vermeiden.

kombiniert den Sitzungsmechanismus von PHP, um die Ursache der Blockierung zu finden. Da die Sitzungsinformationen von PHP in Dateien geschrieben werden, belegt ein Client eine Sitzungsdatei. Daher wird die Datei beim Aufruf von session_start gesperrt und im Lese-/Schreibmodus gesperrt (da der Wert der Sitzung möglicherweise im Programm geändert werden muss). Auf diese Weise wird der zweite Aufruf von session_start blockiert. .

Die einfachste Lösung:

Ich habe im PHP-Handbuch nachgesehen und eine session_write_close-Funktion gefunden, die Sitzungsdaten schreibt und die Sitzung beendet, also Sitzungsdaten schreibt und schließen Sie gleichzeitig die Sitzung. Daher können wir, nachdem wir mit der Sitzung fertig sind, diese Funktion aufrufen, um die Sitzungsdatei zu schließen und sie zu entsperren. Im Allgemeinen wird die Sitzung zum Aufzeichnen von Benutzeridentitätsinformationen verwendet, damit PHP die Identitätsauthentifizierung durchführen kann. Daher kann das Lesen und Schreiben der Sitzung zu Beginn der Seitenausführung erfolgen. Nach der Ausführung kann die Funktion session_write_close sofort aufgerufen werden .

Das obige ist der detaillierte Inhalt vonLösung für das Problem der Sitzungsblockierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles