Ankündigung

Einklappen
Keine Ankündigung bisher.

Ganz merkwürdiger Session-Not-Start-Header-Sent-Fehler

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ganz merkwürdiger Session-Not-Start-Header-Sent-Fehler

    Guten Abend zusammen,

    ich habe eine wirklich merkwürdige "Warning: session_start(): Cannot start session when headers already sent in ..header.php on line 2"-Fehlermeldung.
    Ich weiß, dass session-start vor jeglicher Ausgabe kommen muss.

    Das für mich Verrückte:
    Ich habe eine Datei test.php. mit etwa folgendem Inhalt:
    <?php
    //Nur in Test-Dateien Error-Reporting einschalten
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);

    //$public = true;
    include_once ('header.php');

    ...
    include_once( 'footer.php');
    ?>

    Diese wird einwandfrei gestartet. Der Session-Befehl in der header.php läuft.

    Kopiere ich den Inhalt (Copy-Paste) dieser Datei in eine Datei mit einfach einem anderen Namen, kommt die Fehlermeldung, dass die Session nicht gestartet werden kann,
    weil Header schon gesendet wurden. Was habe ich denn hier übersehen???



  • #2
    Wo die Ausgabe stattfindet, steht in der Fehlermeldungen, die du abgeschnitten hast. Also statt herumraten wäre es sinnvoller die Fehlermeldung zu lesen.

    Kommentar


    • #3
      In "header.php", line 2 steht nichts weiter als
      session_start();

      Deswegen wundert es mich ja.

      Kommentar


      • #4
        Zitat von kaphpzi Beitrag anzeigen
        In "header.php", line 2 steht nichts weiter als
        session_start();

        Deswegen wundert es mich ja.
        Du musst die Fehlermeldung ganz lesen. Wo die Ausgabe stattfindet, steht bei "output started at".

        Kommentar


        • #5
          Meine Fehlermeldung beinhaltet nur diese Zeile
          "Warning: session_start(): Cannot start session when headers already sent in /mnt/.../header.php on line 2"
          Da steht nichts von "output startet at". Kann ich die Ausgabe erweitern?

          Kommentar


          • #6
            Meine Antwort ist nur ein Link:
            https://php-de.github.io/jumpto/headers-already-sent/

            Kommentar


            • #7
              Zitat von kaphpzi Beitrag anzeigen
              Kopiere ich den Inhalt (Copy-Paste) dieser Datei in eine Datei mit einfach einem anderen Namen, kommt die Fehlermeldung, dass die Session nicht gestartet werden kann,
              weil Header schon gesendet wurden. Was habe ich denn hier übersehen???
              Zuerst mal hast Du übersehen das 3 Fragezeichen eine Frage nicht "fragender" machen als ein einzelnes. Immer diese Verschwendung von Pixeln!

              Zu Deiner Ausführung: Wenn man etwas in eine Andere Datei kopiert gibt es keine Fehlermeldung von PHP! Diese gibt es wenn Du das Script aufrufst.

              Beschreibe genauer was Du tust!

              Wie genau und wo wird diese Datei in die Du den Code einfügst eingebunden?
              PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

              Kommentar


              • #8
                Zitat von tomBuilder Beitrag anzeigen
                TomBuilder, deine Seite hat mir geholfen. Und zwar war es das Byte-Order-Mark meiner UTF-8 kodierten Dateien, das den Header gesendet hat. Darauf muss man erst einmal kommen.

                Vielen Dank für diesen super Kommentar. Genial!

                Kommentar


                • #9
                  Zitat von Ulfikado Beitrag anzeigen

                  Zuerst mal hast Du übersehen das 3 Fragezeichen eine Frage nicht "fragender" machen als ein einzelnes. Immer diese Verschwendung von Pixeln!

                  Zu Deiner Ausführung: Wenn man etwas in eine Andere Datei kopiert gibt es keine Fehlermeldung von PHP! Diese gibt es wenn Du das Script aufrufst.

                  Beschreibe genauer was Du tust!

                  Wie genau und wo wird diese Datei in die Du den Code einfügst eingebunden?
                  P.S. Ich liebe die üblichen Spitzfindigkeiten in Internetforen. Kurze Frage an dieser Stellung: Jucken dich ernsthaft drei Fragezeichen???

                  Kommentar


                  • #10
                    Zitat von kaphpzi Beitrag anzeigen
                    Meine Fehlermeldung beinhaltet nur diese Zeile
                    "Warning: session_start(): Cannot start session when headers already sent in /mnt/.../header.php on line 2"
                    Da steht nichts von "output startet at". Kann ich die Ausgabe erweitern?
                    Das wäre echt schlecht, denn die "output started at.." Information ist sehr hilfreich und ich hab noch nie gesehen das diese fehlt.
                    Mit welcher PHP-Version arbeitest du?

                    PHP-Klassen auf github

                    Kommentar


                    • #11
                      Zitat von kaphpzi Beitrag anzeigen
                      Jucken dich ernsthaft drei Fragezeichen???
                      Schon mal was von Copyright gehört ?

                      https://de.wikipedia.org/wiki/Die_drei_%3F%3F%3F

                      und jetzt mal ernst:
                      ja die Wissenssammlung ist Klasse, ein Blick da rein lohnt fast immer.

                      Kommentar


                      • #12
                        Zitat von kaphpzi Beitrag anzeigen
                        Kurze Frage an dieser Stellung: Jucken dich ernsthaft drei Fragezeichen???
                        Wenn da ein zwinkerndes Smiley dahinter steht wahrscheinlich nicht…

                        PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

                        Kommentar

                        Lädt...
                        X