UTF-8 und start_session();
Keine brandaktuelle Neuentdeckung, aber vielleicht noch nicht jedem Webentwickler bekannt: bei UTF-8 codierten PHP/HTML-Seiten und der Verwendung von Sessions kann unter Umständen eine PHP-Fehlermeldung bei dem Aufruf von start_session(); geschmissen werden.
Warning: Cannot send session cache limiter – headers already sent (output
started at hier kommt die betreffende Datei
Allgemein muss start_session(); immer ganz zu Anfang des PHP-Skripts aufgerufen werden, um die Session zu starten. Es dürfen keine Zeichen oder Zeilen vor dem Befehl auftauchen! Das wurde bereits berücksichtigt und die Fehlermeldung taucht immer noch auf?
Das Byte Order Mark von UTF-8 wird als Zeichenkette interpretiert und ist verantwortlich für das Problem. Wird die UTF-8 codierte Seite mit einem geeigneten Editor ohne BOM gespeichert, sollte es keine Probleme mehr mit Sessions bzw. start_session(); und UTF-8 geben. Ein guter Open Source Editor, der UTF-8 ohne BOM schreiben kann, ist Notepad++.
Am 10. November 2007 um 04:49 Uhr
Nützliche Information. Werde diesen Blog öfter besuchen 😉
Am 24. November 2007 um 14:27 Uhr
Super Info danke.
Am 31. Dezember 2007 um 16:59 Uhr
Weiß jemand, wie man mit Notepad++ bestehende Dateien in UTF-8 ohne BOM konvertieren kann? Ich kann zwar on-the-fly die benutzte Kodierung ändern, aber das ändert nix an der Datei an sich sondern nur die Darstellung :-/
Am 7. April 2008 um 10:29 Uhr
Danke für die Info 🙂
Werde ich bei künftigen derartigen Problemen im Hinterkopf haben…
Am 6. Mai 2008 um 16:48 Uhr
Vielen Dank für die Info.
Mit diesem Supertip ist mein Weltbild wieder in Ordnung. Der Tip hat mir
bei einem Problem enorm geholfen.