davidp: session_start() nicht möglich - headers already sent

Hi,

session_start() gehört ja ganz an den anfang, sonst kommt der Fehler: Cannot send session cache limiter - headers already sent (output started at /... .php:1) in /... .php:2
Doch bei mir steht es ganz am Anfang! (Zeile 2 sagt er weil in Zeile 1 <?PHP steht)

Ich habe heute schon Probleme mit der Zeichenkodierung gehabt und es gibt da ja ein sogenanntes BOM (Wikipedia: BOM) am Anfang, jetzt (mit der richtigen Kodierung) sehe ich keines aber könnte es vl. doch für den Fehler verantwortlich sein?

Ich hoffe jemand kann mir helfen,
davidp

  1. Hallo,

    Ich habe heute schon Probleme mit der Zeichenkodierung gehabt und es gibt da ja ein sogenanntes BOM (Wikipedia: BOM) am Anfang, jetzt (mit der richtigen Kodierung) sehe ich keines aber könnte es vl. doch für den Fehler verantwortlich sein?

    Wahrscheinlich wird es aber genau daran liegen ... Das Problem hatte ich auch schon in einem anderen Zusammenhang. ;) Schau Dir mal an, was wirklich im response header steht - und vergleich dann mit der gesetzten Kodierung im Skript sowie dem Dateiformat.

    Grüße,
    luti

    1. Hi,

      Wahrscheinlich wird es aber genau daran liegen ... Das Problem hatte ich auch schon in einem anderen Zusammenhang. ;) Schau Dir mal an, was wirklich im response header steht - und vergleich dann mit der gesetzten Kodierung im Skript sowie dem Dateiformat.

      Kodierung vom Browser aus ist Unicode (UTF-8)
      Die Datei ist im Format UTF-8 gespeichert (Wenn ich sie als Unicode speichere gibt der Server mir den PHP-Code aus...)

      Grüße, davidp

      1. Hallo,

        Kodierung vom Browser aus ist Unicode (UTF-8)

        Und was genau steht im response header?

        Grüße, luti

        1. Hi,

          Hallo,

          Kodierung vom Browser aus ist Unicode (UTF-8)

          Und was genau steht im response header?

          Grüße, luti

          wie kann ich den auslesen?

          Grüße, davidp

          1. Hallo,

            wie kann ich den auslesen?

            Ich benutze für solche Fälle den Firebug ...

            Grüße, luti

          2. hi,

            Und was genau steht im response header?

            wie kann ich den auslesen?

            https://addons.mozilla.org/de/firefox/addon/60

            Mit dem hast du eine Leiste, in der ein Punkt "Informationen" steht, unter diesem findest du "Antwort-Header anzeigen".

            Wenn du testen möchtest, ob deine Ressource eine BOM erzeugt, in deinem Browser die Seite aufrufen und die Zeichenkodierung, die die Seite hat, Manuell auf ISO-8859-1 stellen; hat dir zwar der dedlfix schon geschrieben, ich wiederhole es aber trotzdem.

            Wenn du eine BOM hast, zeigt dir der Browser die Zeichen .

            mfg

      2. Hi,

        hab die Lösung gefunden: Ich hab die Datei im ANSI-Format gespeichert und nicht im UTF-8 Format. Dann war der Fehler weg.

        Grüße, davidp

        1. Hi!

          hab die Lösung gefunden: Ich hab die Datei im ANSI-Format gespeichert und nicht im UTF-8 Format. Dann war der Fehler weg.

          Nein, du hast nur eine Umgehung gefunden, und dir möglicherweise weitere Zeichenkodierungsprobleme eingehandelt. Es deutet jedenfalls stark darauf hin, das du UTF-8 mit BOM speicherst. Schau lieber im Browser nach, was der bekommt als im Editor, der dir die BOM nur beim Speichern hinzufügt, aber sie normaler- und verständlicherweise nicht anzeigt. Auch der Browser wird sie dir möglicherweise nicht anzeigen, wenn er sich auf UTF-8 eingestellt hat. Händisch umgestellt auf ISO-8859-1 solltest du die drei BOM-Bytes auf alle Fälle als Zeichen sehen.

          Lo!

  2. Hi!

    session_start() gehört ja ganz an den anfang, sonst kommt der Fehler: Cannot send session cache limiter - headers already sent (output started at /... .php:1) in /... .php:2
    Doch bei mir steht es ganz am Anfang! (Zeile 2 sagt er weil in Zeile 1 <?PHP steht)

    Das mit dem Anfang ist nicht richtig. Es darf nur keinerlei Ausgabe erfolgt sein, wozu auch Zeichen außerhalb der PHP-Bereiche zählen.

    Ich habe heute schon Probleme mit der Zeichenkodierung gehabt und es gibt da ja ein sogenanntes BOM (Wikipedia: BOM) am Anfang, jetzt (mit der richtigen Kodierung) sehe ich keines aber könnte es vl. doch für den Fehler verantwortlich sein?

    Auf welche Weise genau überprüfst du, dass da nichts ist?

    Lo!

    1. Hi,

      Auf welche Weise genau überprüfst du, dass da nichts ist?

      Naja im Editor steht davor eben nichts es fängt an mit:
      <?PHP
      session_start();

      Grüße, davidp

      1. Hi,

        Auf welche Weise genau überprüfst du, dass da nichts ist?
        Naja im Editor steht davor eben nichts es fängt an mit:
        <?PHP
        session_start();

        Und "vor" dem < steht die BOM, wenn du das Dokument mit einer solchen gespeichert hast - du siehst sie nur nicht.

        Also schau in deinem Editor, wie du dort Dateien als UTF-8 ohne BOM speichern kannst.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
  3. Hallo,

    du findest hier im archiv einiges dazu, hatten wir grade. ja, es wurde bereits eine ausgabe erzeugt, ja, wenn es nichts anderes war, dann ists der bom. teste einen anderen editor u.u..

    Gruß

    jobo

    1. Hallo,

      du findest hier im archiv einiges dazu, hatten wir grade. ja, es wurde bereits eine ausgabe erzeugt, ja, wenn es nichts anderes war, dann ists der bom. teste einen anderen editor u.u..

      ... sorry, ich sah zu spät, dass schon geantwortet wurde.

      Gruß

      jobo