Problem mit php session

Joined
Sep 27, 2003
Messages
3,945
Points
0
Hey

Ich bin grade an nem php + mysql Projekt für die BA und muss das bis morgen fertig haben :z Ich arbeite zum erstem mal richtig mit php und mir unterlaufen deshalb vermutilch noch viele Anfängerfehler...

Da wir auch ein Login-System basteln sollen, wollte ich nun Sessions verwenden. Mein Projekt ist so aufgebaut, dass es nur eine "index.php" gibt, die je nach querystring die benötigte andere Seite im content Bereich einbindet.

Deshabl müsste ich doch nur in der index.php
PHP:
session_start();
schreiben oder? Ich hab das ganz am Anfang drin aber wenn ich die Seite dann im Browser lade, bekomm ich immer 2 Links angezeigt, die mir sagen

<b>Warning</b>: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\RepDatenBanke\index.php:1) in <b>C:\xampp\htdocs\RepDatenBanke\index.php</b> on line <b>1</b><br />
<br />
<b>Warning</b>: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\RepDatenBanke\index.php:1) in <b>C:\xampp\htdocs\RepDatenBanke\index.php</b> on line <b>1</b><br />

Der Code steht aber definitiv ganz als erstes da und deshalb versteh ich ncih wieso da steht, dass der Header schon abgeschickt worden sein soll.

Ahja und irgendwie verhauts mir auch mein ganzes css layout oO Ich hoffe mir kann jemand helfen.

edit: hat sich erledigt. Es lag daran, dass ich die index.php als UTF8 gespeichert hatte und deshalb schon Zeichen an den Browser übermittelt wurden. Hab die Datei jetzt als ANSI abgespeichert und dann
PHP:
header('Content-Type: text/html; charset=UTF-8'); 
session_start(); ?>
am Anfang des Skripts aufgerufen und jetzt scheints zu gehn.
 
Last edited:
das liegt übrigens an BOM (byte order marks), da dies schon vor allem anderen als ausgabe gesendet wird. Am besten wäre es dann eine UTF-8 ohne BOM zu speichern :o
 
Vor session_start darf keine Ausgabe stehen, da sonst schon ein Header gesendet wurde.
Bzgl. CSS bräuchten wir natürlich die Seite und die CSS/HTML-Angaben ^^
 
ja, nur erzeugt eine UTF-8 Datei mit BOM immer eine Ausgabe am Anfang, auch wenn session_start(); an erster Stelle steht ^^.

wenn dein css jedoch durch eine php fehlermeldung zerschossen wird, hast du da nicht ganz safe gearbeitet.
 
ja, aber vielleicht hilft dies jemanden, der auf UTF-8 nicht verzichten kann ;)

eine vollständigere klärung des problems ist immer besser :)
 
ich hab ja auch nich auf utf-8 verzichtet, nur hab ichs dem Browser anders mitgeteilt ;p
 
Back
Top Bottom