


Die schmerzhafte Erfahrung, die Apache PHP SESSION unter Windows zu verlieren
Die heutige Arbeit besteht darin, eine PHP-Site auf einen neuen Server zu migrieren.
Erstellen Sie eine virtuelle Windows Server 2008-Maschine und stoppen Sie den Net-Stop-HTTP-Dienst darauf (um die Konkurrenz um Port 80 zu vermeiden), installieren und konfigurieren Sie Apache PHP, migrieren Sie die Site auf den neuen Server und öffnen Sie die Site Normalerweise lief Apache PHP normal, die Verbindung zum MySql-Server war normal und alles war in Ordnung. Ich dachte daran, die Arbeit in einer halben Stunde abzuschließen, aber dann begann der Albtraum.
Diese Website verwendet Single Sign-On und der Anmeldevorgang umfasst asynchrone JavaScript-Vorgänge, einschließlich SOAP-Aufrufe an Webdienste. Nach der Anmeldung wurde ohne Fehlermeldung direkt zur Anmeldeseite zurückgesprungen. Wir haben die folgenden Möglichkeiten in Betracht gezogen:
1. Auf anderen Systemen getestet, ist der Kontostatus normal.
2. Ist der asynchrone JavaScript-Vorgang fehlgeschlagen? Verwenden Sie die IE-Entwicklertools, um den Javascript-Rückgabewert zu verfolgen. Der Rückgabewert ist normal.
3. Ist der Webdienstaufruf fehlgeschlagen? Verwenden Sie Fiddler, um den Rückgabewert des Webdienstes zu verfolgen und anzuzeigen, dass die Überprüfung erfolgreich war und die lokale Anmeldung abgeschlossen wurde.
Nach wiederholtem Verfolgen und Debuggen begann ich zu vermuten, dass die SITZUNG der Site verloren gegangen ist:
1 Der asynchrone JavaScript-Vorgang zum Festlegen der SITZUNG ist fehlgeschlagen Sind synchroner Zugriff und asynchroner Zugriff unterschiedlich? Dies ist nur bei asynchronen Aufrufen in Flash passiert. Wird es auch bei JavaScript passieren? Der SESSION-ID-Wert des synchronen Ausgabezugriffs und des asynchronen Zugriffs ist derselbe.
2. Erstellen Sie 2 PHP-Testseiten, legen Sie SESSION auf einer Seite fest, können Sie sie aber auf der anderen Seite nicht lesen. Überprüfen Sie die php.ini-bezogenen Einstellungen. Es scheint normal zu sein, dass der Pfad session.save_path = „C:/php/tmp“ überprüft wird, aber es gibt keine SESSION-bezogenen Dateien und die Einstellung umfasst nicht einmal das tmp-Verzeichnis.
Das Ende ist lächerlich. Ohne das tmp-Verzeichnis kann PHP die SESSION-Datei nicht schreiben und natürlich geht die SESSION verloren. Warum gibt es kein tmp-Verzeichnis? Weil es nicht im Installationspaket enthalten ist ... meine 3 Stunden.
Das Obige hat die schmerzhafte Erfahrung des Verlusts von Apache PHP SESSION unter Windows vorgestellt, einschließlich der relevanten Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Ausführen des H5 -Projekts erfordert die folgenden Schritte: Installation der erforderlichen Tools wie Webserver, Node.js, Entwicklungstools usw. Erstellen Sie eine Entwicklungsumgebung, erstellen Sie Projektordner, initialisieren Sie Projekte und schreiben Sie Code. Starten Sie den Entwicklungsserver und führen Sie den Befehl mit der Befehlszeile aus. Vorschau des Projekts in Ihrem Browser und geben Sie die Entwicklungsserver -URL ein. Veröffentlichen Sie Projekte, optimieren Sie Code, stellen Sie Projekte bereit und richten Sie die Webserverkonfiguration ein.

In PHP8 sind Übereinstimmungsausdrücke eine neue Kontrollstruktur, die unterschiedliche Ergebnisse basierend auf dem Wert des Expression zurückgibt. 1) Es ähnelt einer Switch -Anweisung, gibt jedoch einen Wert anstelle eines Ausführungsanweisungsblocks zurück. 2) Der Match -Ausdruck wird streng verglichen (===), was die Sicherheit verbessert. 3) Es vermeidet mögliche Auslassungen in Switch -Anweisungen und verbessert die Einfachheit und Lesbarkeit des Codes.

In PHP können Sie CSRF -Angriffe effektiv verhindern, indem Sie unvorhersehbare Token verwenden. Spezifische Methoden umfassen: 1. CSRF -Token in der Form erzeugen und einbetten; 2. Überprüfen Sie die Gültigkeit des Tokens bei der Bearbeitung der Anfrage.

Es gibt zwei Möglichkeiten, XML in PDF zu exportieren: Verwenden von XSLT und Verwendung von XML -Datenbindungsbibliotheken. XSLT: Erstellen Sie ein XSLT -Stylesheet und geben Sie das PDF -Format an, um XML -Daten mit dem XSLT -Prozessor zu konvertieren. XML -Datenbindungsbibliothek: XML -Datenbindungsbibliothek importieren PDF -Dokumentobjekt Lade XML -Daten Export PDF -Dateien. Welche Methode für PDF -Dateien besser ist, hängt von den Anforderungen ab. XSLT bietet Flexibilität, während die Datenbindungsbibliothek einfach zu implementieren ist. Bei einfachen Conversions ist die Datenbindungsbibliothek besser und für komplexe Conversions ist XSLT besser geeignet.

In PHP wird das endgültige Schlüsselwort verwendet, um zu verhindern, dass Klassen vererbt werden, und die Methoden überschrieben werden. 1) Wenn die Klasse als endgültig markiert wird, kann die Klasse nicht vererbt werden. 2) Wenn die Methode als endgültig markiert wird, kann die Methode nicht von der Unterklasse neu geschrieben werden. Durch die Verwendung von endgültigen Schlüsselwörtern wird die Stabilität und Sicherheit Ihres Codes sichergestellt.

Der ... (SPLAT) -Operator in PHP wird verwendet, um Funktionsparameter und Arrays auszupacken, wodurch die Einfachheit und Effizienz der Code verbessert wird. 1) Funktionsparameter Auspacken: Übergeben Sie das Array -Element als Parameter an die Funktion. 2) Array -Auspacken: Auspacken Sie ein Array in ein anderes Array oder als Funktionsparameter.

Strenge Typen in PHP werden durch Hinzufügen von Declare aktiviert (strict_types = 1); oben in der Datei. 1) IT erzwingt die Typprüfung der Funktionsparameter und der Rückgabewerte, um die implizite Typumwandlung zu verhindern. 2) Die Verwendung strenger Typen kann die Zuverlässigkeit und Vorhersehbarkeit des Codes verbessern, Fehler reduzieren und die Wartbarkeit und Lesbarkeit verbessern.
