Probleme mit PHP-Sessions

Schon seit Tagen saß ich nun ein einem einfachen Fehler in einem Login-Skript mit Sessions unter PHP.
Zuerst dachte ich, der Fehler sei schnell gefunden … Doch weit gefehlt.

Erst nach 2 – 3 Tagen habe ich dann die Lösung des Problems gefunden.

Doch ich beginne erstmal von Anfang an …

Für ein Webprojekt habe ich vor einer Weile einen geschützten Teil einer Seite geschrieben. Das Ganze funktioniert mit PHP und Sessions. Nachdem ich mich dann entschlossen habe mit dem Projekt auf einen neuen Server umzuziehen, ergaben sich einige Probleme.

Die meisten Probleme ergaben sich durch kleine Fehler in manchen Skripten, welche sehr schnell und einfach zu beheben waren.

Ein anderes Problem hingegen war das Login-Skript. Man schaffte es erst, sich beim zweiten Mal anzumelden. Zugegeben, manche hätten den Fehler schneller gefunden. Doch ich begab mich erst einmal alleine ohne Hilfe auf Fehlersuche, da ich fest entschlossen war, dass ich den Fehler finde und der Lerneffekt durch das selbstständige Suchen am Größten sein würde.

Doch nach 2 – 3 Tagen gab ich dann auf und suchte im Internet. Prompt fand ich auch eine Idee, woran es liegen könnte: BOM.


BOM: Der Begriff steht für Byte Order Mark und ist einfach gesagt ein Zeichen (U+FEFF) vor einem Datenstrom.


Um es kurz und einfach zu erklären, vor einem

session_start();

darf nichts anderes gesendet werden. Weder ein Leerzeichen, noch ein Komma, auch kein anderes Zeichen wie BOM. Und dort lag der Fehler begraben.

Diesem Problem kann man jedoch ganz leicht aus dem Weg gehen. Man öffnet sein PHP-Skript bspw. unter Notepad++ und stellt unter Kodierung folgendes ein: UTF-8 ohne BOM.

Wenn dies erfolgt ist, sollte der Fehler künftig nicht mehr auftreten.

Ich hoffe ich konnte dem Einen oder Anderen damit helfen und derjenige wird nicht in die Verzweiflung getrieben durch einen solchen Fehler.


Lukas

Hey, ich bin Lukas. Seit einigen Jahren schreibe ich in meinem Smart Home Blog über Hausautomation und Digitalisierung. Als Wirtschaftsinformatiker weiß ich, wie wichtig die Vernetzung von IT-Systemen ist. Diese Erkenntnisse übertrage ich auf mein eigenes Smart Home, das ich auf Basis von ioBroker betreibe. Hierzu nutze ich die Leistung meines eigenen Server-Clusters aus dem Keller. In deinen Ohren klingt das mindestens genauso spannend, wie für mich? Dann komm mit auf unsere Reise zu einem vollwertigen, sicheren und komfortablen Smart Home. Ganz oben findest du Verknüpfungen zu Social Media, wo du mir gerne folgen darfst. Ich freue mich auf dich!

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.