Problem mit Session

ThomasTomTom

Mitglied
Hallo zusammen,

ich habe da ein Problem, und zwar will ich ein Login auf meiner Seite möglich machen.

Soweit funktioniert das auch. Nur wenn ich die Session STarten will, bekomme ich immer eine Fehlermeldung. Und ich kann mir da leider nicht mehr weiterhelfen was das sein soll/woran das liegt.

Meldung die ich bekomme lautet:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /srv/www/htdocs/xxx/html/main.php:5) in /srv/www/htdocs/xxx/html/plugins/login.php on line 10

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /srv/www/htdocs/xxx/html/main.php:5) in /srv/www/htdocs/xxx/html/plugins/login.php on line 10

Also das auslesen aus der DB und das überprüfen usw, das geht alles wunderbar.
Ich bekomme auch meine eingebaute Testbestätigung ausgegeben. Aber sie Session wird nicht gestartet. Kann mir jemand weiterhelfen wo ich da suchen muss/woran das liegt?

Danke schonmal. T0m

PS: Ich komme mit den Fehlermeldungen nicht klar, da ich mir darauf nicht zusammenreimen kann.
 
Iss ganz einfach und hat warscheinlich schon jeder mal gehabt ;)

Also beim Aufruf von session_start() wird ein Cookie mit der SessionID an den Browser gesendet. Cookies sind Bestandtteil des HTTP-Headers und müssen deshalb vor dem HTTP-Body geschickt werden.

Der Fehler tritt bei dir deshalb auf, weil du schon Daten an den Browser schickst bevor das Cookie durch start_session() geschict wird. Dies kann a) wissentlich passierten
PHP:
<html>
<head>
<? session_start();
...
?>

oder auch unwissentlich
PHP:
<?
include('foo');

session_start();
?>
Datei: foo
PHP:
<?
// some code
?>
Man beachte die Leerzeile in foo. Die wird sofort beim includen an den Browser geschickt, also vor dem Cookie.
 
Das Problem:

ich habe nun den Header aufgeräumt....
Aber das kommt immernoch.

PHP:
<head>
<title>Test</title>
<meta http-e......>
<link rel="....>
</head>


Da sollte doch nix mehr stören, oder?
Und sessions muss ich doch nicht immer im header öffnen, oder? *kopfkratz*

Es geht aber wie gesagt leider immernoch nicht.
 
Nochmal:
Du darfst vor session_start() keine Ausgaben an den Browser machen!

Und verwechsle nicht HTML Header mit HTTP-Header. Das sind zwei verschiedenen Paar Stiefel.
 
OK, jetzt habe ich mein Plugin 2 geteilt, nun gehts...

Aber bei einem Seitenwechsel verliert er die session, das ist mein nächstes Problem.

KORREKTUR:

Also, geht doch nicht, nur weil ich den teil mit der Session nun in den HEader verlegt habe, habe ich das nicht gleich gesehen.

Also die Fehlermeldung ist noch die gleiche.

Also ich verzweifle langsam.
Ich mache nun die Session_start() Anweisung als erstes, keine andere Ausgabe an den Browser. trotzdem diese Fehlermeldung.
Session_star() steht als erstes in meinem obersten PHP bereich! Trotzdme gehts nicht, gleicher effekt.

Kann mir vielleicht noch jemand einen Tip geben?
 
Zuletzt bearbeitet:
Zurück