KeinBlase: PHP Fehlermeldung: Cannot modify header information - Ursache?

Hallo

Ich bekomme auf meiner Webseite (CMS mit PHP & MYSQL, läuft auf Apache Server) immer folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at........

Ich bekomme diese Fehlermeldung mehrfach bei einer Seite, aktualisiere ich den Browser ist sie weg, ebenso wenn ich auf eine schon geöffnete Seite zurück kehre.

Was ist die Ursache für diesen Fehler?

Dank und Gruss

  1. Warning: Cannot modify header information - headers already sent by (output started at........

    Ich bekomme diese Fehlermeldung mehrfach bei einer Seite, aktualisiere ich den Browser ist sie weg, ebenso wenn ich auf eine schon geöffnete Seite zurück kehre.

    es wird eine http-header-information gesetzt, obwohl schon output gesendet wurde - das darf nicht sein

    vermutlich setzt du irgendwo ein cookie, welches beim neu laden der seite dann nicht mehr gesetzt wird oder ähnliches

  2. http://www.php-resource.de/forum/showthread.php?threadid=62965

    Gruss

  3. Liebe(r) KeinBlase,

    Dein Webspace startet automatisch eine Session und vergibt deshalb ein Cookie. In irgendeinem Deiner Scripte wird jetzt etwas _sofort_ an den Browser ausgegeben, sodass dieser Mechanismus anscheinend nicht korrekt arbeiten kann...

    Ob das Obige jetzt so unbedingt einen Sinn ergibt, mag dahingestellt bleiben, jedoch erscheint mir das Phänomen, dass nach dem Reload einer Seite die Fehlermeldung wieder verschwindet, ganz stark auf session.autostart=true hinzuweisen. Um das zu unterbinden gibt es zwei Möglichkeiten:

    1.) Wenn Du ein zentrales Script benutzt, dann füge am Anfang folgende Anweisung ein:
        ini_set('session.autostart', false);

    2.) Wenn es die Serverkonfiguration zulässt, dann kannst Du über Deine .htaccess diesen Wert steuern. Dazu muss in dieser Textdatei folgende Zeile stehen:
        php_flag session.autostart false

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. echo $begrüßung;

      Dein Webspace startet automatisch eine Session und vergibt deshalb ein Cookie. In irgendeinem Deiner Scripte wird jetzt etwas _sofort_ an den Browser ausgegeben, sodass dieser Mechanismus anscheinend nicht korrekt arbeiten kann...

      Unwahrscheinlich, dass es sich um einen Session-Start handelt. Die Meldung passt nicht zum Verhalten beim Session-Start, oder der OP hat weitere Meldungen unterschlagen.

      Ob das Obige jetzt so unbedingt einen Sinn ergibt, mag dahingestellt bleiben, jedoch erscheint mir das Phänomen, dass nach dem Reload einer Seite die Fehlermeldung wieder verschwindet, ganz stark auf session.autostart=true hinzuweisen.

      Nein, ganz und gar nicht. Bei aktiviertem session.auto_start startet PHP den Session-Mechanismus selbständig vor dem Scriptstart. Da kann noch keine Ausgabe stattgefunden haben[1]. Anders kann das beim manuellen Start mittels session_start() sein, denn das kann auch aufgerufen werden, wenn bereits eine Ausgabe erzeugt wurde. In dem Fall gibt es aber diese Meldung und vorher mindestens noch noch »Cannot send session cookie - headers already sent ...«

      setcookie(), aufgerufen in Abhängigkeit von einem empfangenen Cookie, ist wenig wahrscheinlich, denn beim ersten Aufruf konnte der Keks ja nicht ausgeliefert werden, kann also eim wiederholten Request nicht mit dabei sein. Es sei denn, ein zweites setcookie() hat den selben Keks bereits und vor der ersten Ausgabe gesendet.

      [1] Höchstens mit auto_prepend_file. Ob das aber vor session.auto_start oder danach ausgeführt wird, weiß ich nicht. Sinnvoll wäre es danach.

      echo "$verabschiedung $name";