Das Beispiel in diesem Artikel beschreibt die Lösung für ungültige Sitzungen und Cookies in thinkphp. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Problembeschreibung:
Es gibt kein Problem mit Sitzung und Cookie, wenn ich lokal debugge, um die Informationen des aktuellen Anmeldekontos zu speichern Auf dem Server habe ich einen Sprung gefunden. Danach existiert die Sitzung nicht mehr. Warum? Die Ausgabesitzung auf der aktuellen Seite ist vorhanden.
Ich bin seit drei Tagen auf dieses Problem gestoßen, es gibt keinen Lehrer, den ich um Rat fragen kann, und es gibt nicht viele Leute in meiner Nähe Es ist wirklich tragisch, PHP zu machen, also ... Baidu und viele Leute auf Baidu reden Unsinn, und es gibt nichts, was das Problem lösen kann. Nach drei Tagen der Modifikation habe ich endlich die Grundursache gefunden Da es sich bei den meisten Servern, die thinkphp unterstützen, um Linux-Systeme handelt und unsere Programmierung grundsätzlich mit Windows übereinstimmt, führt dies zu Problemen mit dem BOM-Header. PHP kann den BOM-Header nicht analysieren, sondern entfernt ihn direkt, wodurch die Sitzung und die Cookies beschädigt werden unbrauchbar.
Lösung:
Was ist Stücklistenkopf? In einer UTF-8-codierten Datei befindet sich die Stückliste im Header der Datei und belegt drei Bytes. Dies wird verwendet, um anzuzeigen, dass die Datei zur UTF-8-Codierung gehört. Nun gibt es viele Softwareprogramme, die den BOM-Header erkennen, aber dort Es gibt immer noch einige, die den BOM-Header nicht erkennen können, z. B. PHP. Der BOM-Header kann nicht erkannt werden, weshalb nach dem Bearbeiten der UTF-8-Codierung mit Notepad ein Fehler auftritt. Die einfachen Möglichkeiten, den BOM-Header zu entfernen sind die folgenden zwei:
1 , So entfernen Sie den BOM-Header mit Editplus
Nachdem der Editor an das UTF8-Codierungsformat angepasst wurde, wird es eine Reihe versteckter Zeichen geben (d. h. BOM). vor der gespeicherten Datei, die vom Editor verwendet wird, um zu identifizieren, ob die Datei in UTF8 kodiert ist
Führen Sie Editplus aus, klicken Sie auf „Einstellungen“, wählen Sie die Datei aus und wählen Sie „UTF-8-Identifikation“, um sie immer zu löschen die Signatur und bearbeiten und speichern Sie dann die PHP-Datei ohne BOM.
2. Ultraedit-Methode zum Entfernen des BOM-Headers
Wählen Sie nach dem Öffnen der Datei das Codierungsformat in der Option „Speichern unter“. utf-8 ohne BOM-Header), bestätigen Sie und es ist in Ordnung. Der BOM-Header ist sehr einfach Die PHP-Datei selbst als UTF-8 mit BOM wird im Allgemeinen nicht aus diesem Grund verursacht.
Dieser Satz steuert die Codierungsmethode der HTML-Ausgabeseite nur verfügbar, wenn „Notepad“ zum Speichern als UTF-8 unter WINDOWS verwendet wird. Sie können WINHEX verwenden, um die ersten 2 Bytes zu löschen. In den Kodierungseinstellungen in Dreamweaver können Sie festlegen, ob a BOM. Solange die Ausgabe von PHP kein Bild ist (GDI-Stream), verursacht der BOM keine Probleme. Die Zeichen werden als rote Kreuze angezeigt Ich hoffe, dass dieser Artikel für alle auf dem ThinkPHP-Framework basierenden PHP-Programmdesigns hilfreich sein wird.header("Content-type: text/html; charset=utf-8");
Weitere Artikel zu Lösungen für ungültige Sitzungen und Cookies in thinkphp finden Sie auf der chinesischen PHP-Website!