Schorsch: headers already sent...

Guten Tag

Wenn ich meine DB-Verbindung per "require_once('db.php')" einbinde, kriege ich den Fehler: "headers already sent... "
Schreibe ich aber exakt(!) genau das, was in 'db.php' drin ist direkt ins File, verschwindet die Fehlermeldung.

Was ich nicht verstehe:

Man könnte meinen, in der Datei 'db.php' werden irgendwelche Zeichen oder Leerzeichen ausgegeben, welche dann den Fehler verursachen. Dies ist aber nicht der Fall.

Was könnte sonst noch den Fehler verursachen?
Und warum ist er weg, wenn ich dieselbe Codezeilen anstelle von includen direkt in die Hauptdatei schreibe?

Gruss
Schorsch

  1. Hallo,
    "headers already sent..."

    Du musst den header Befehln benutzen, _bevor_ du _irgendwas_ ausgibst.

    Dazu zählen auch Zeilenumbrüche:

    Falsch:
    1
    2 <?php
    3 header(...);
    4 ?>

    Richtig:
    1 <?php
    2 header(...);
    3 ?>

    Falsch
    1 <?php
    2 echo "moin";
    3 header(...);
    4 ?>

    Richtig
    1 <?php
    2 header(...);
    3 echo "moin";
    4 ?>

    Denn so bald man etwas ausgibt, wird als Header Text genommen.

    MFG
    Andavos

  2. Hi Schorsch,
    schau mal, ob nach <?php .... ?> in deiner db.php vielleicht eine lerrzeile kommt. Das  könnte das Problem sein.
    MFG Christof

    1. Salut

      schau mal, ob nach <?php .... ?> in deiner db.php vielleicht eine lerrzeile kommt.

      Keine Leerzeile, kein Tab...

      Gruss + Merci

      Schorsch

  3. Hello,

    Wenn ich meine DB-Verbindung per "require_once('db.php')" einbinde, kriege ich den Fehler: "headers already sent... "
    Schreibe ich aber exakt(!)

    Das halte ich für eine Lüge ;-)) [1]

    genau das, was in 'db.php' drin ist direkt ins File, verschwindet die Fehlermeldung.

    [1] soll heißen, lass Dich nicht vom Schein blenden, sondern schau notfalls mit einem Hex-Editor genau nach, was wann gesendet wird. Du wirst in Deiner include-Datei noch für den Editor unsichtbare Zeichen haben.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  4. Moin Schorsch,

    Wenn ich meine DB-Verbindung per "require_once('db.php')" einbinde, kriege ich den Fehler: "headers already sent... "
    Schreibe ich aber exakt(!) genau das, was in 'db.php' drin ist direkt ins File, verschwindet die Fehlermeldung.

    obwohl das die Fehlermeldung natürlcih erzwingt, versuche mal folgendes:

    Direkt vor dem include: echo 'Ich rufe include' und im include file:
    echo ' Ich wurde included';

    Jetzt schau mal ob einer der echos öfter als einmal erscheint.

    Noch dazu scheint in db.php ein Fehler zu sein, welcher ausgegeben wird und dann die angezeigte (aber nicht ursprüngliche ) Fehlermeldung ausgibt.

    Viel Glück beim Nachforschen.

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
  5. Ihr seid die Besten!

    Tatsächlich hatte es irgend etwas in der Include-Datei drin gehabt, was mit meinem Editor nicht zu sehen war. Hab die Datei komplett neu angelegt, jetzt funktionierts.

    Verwirrend war, dass die "defekte" Include-Datei auf zwei Servern keine Probleme machte, erst auf dem Dritten...

    Es sei gedankt!
    Schorsch