dmms: inkludier problem

kurze frage...warscheinlich bin ich einfach mal wieder grad blind
folgendes problem:

will n php-skript in index.php inkludieren mit
<?php include ('ordner/skript.php'); ?>

funkzt soweit auch.

im skript steht am anfang:
session_start();

ich erhalte wenn ich die seite index.php aufrufe die fehlermeldung:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

was mach ich falsch?
lg

  1. Hi,

    ich erhalte wenn ich die seite index.php aufrufe die fehlermeldung:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

    session_start versucht in Defaulteinstellung einen Cookie zu setzen, und das geht nur, wenn vorher noch *keinerlei* Ausgabe an den Client erfolgt ist.
    Und wo in deinem Falle diese Ausgabe bereits erfolgt ist, das sagt die Meldung auch.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Moin!

      session_start versucht in Defaulteinstellung einen Cookie zu setzen, und das geht nur, wenn vorher noch *keinerlei* Ausgabe an den Client erfolgt ist.
      Und wo in deinem Falle diese Ausgabe bereits erfolgt ist, das sagt die Meldung auch.

      ChrisB vergaß zu mitzuteilen, dass es sich dabei um "HTML-Code" aber - und das treibt viele zur Verzweiflung - oft um Leerzeilen (die enthalten einen Zeilenumbruch, der natürlich gesendet wird) vor dem ersten "<?php" in der aufrufenden oder der includierten Datei handeln kann. Das "<?php" gehört in dem Fall in die erste(!) Zeile beider Dateien...

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
      1. hi,

        ChrisB vergaß zu mitzuteilen, dass es sich dabei um "HTML-Code" aber - und das treibt viele zur Verzweiflung - oft um Leerzeilen (die enthalten einen Zeilenumbruch, der natürlich gesendet wird) vor dem ersten "<?php" in der aufrufenden oder der includierten Datei handeln kann. Das "<?php" gehört in dem Fall in die erste(!) Zeile beider Dateien...

        fastix® vergaß mitzuteilen, dass bei deaktiviertem "output_buffering" auch eine sogenannte BOM diesen Fehler verursachen kann, was noch viel verwirrender sein kann, weil man eine BOM so ohne weiteres erst mal nicht zu sehen bekommt.

        <?php  /* Zeile 1 */  
          
          error_reporting(E_ALL | E_STRICT);  
          session_start();  
          include ('overflow.html');  
          
        ?> 
        

        Mit BOM
        Ohne BOM

        Um festzustellen, ob eine BOM vorliegt, einfach durch den Validator jagen oder die Zeichenkodierung des Browsers Manuell auf Westlich (Iso...) umstellen -- wenn eine BOM vorliegt, bekommt man "" zu sehen.

        mfg

        1. hi,

          Mit BOM
          Ohne BOM

          Und als klitzekleine Ergänzung möchte ich nicht vergessen, mitzuteilen, dass der Autor seinen Editor soweit kennen sollte, dass er weiß, ob eine Datei mit oder ohne BOM gespeichert wird, sofern das wegen einer nichtANSI-gemäßen Zeichenkodierung überhaupt zur Debatte steht.

          Mit freundlichen Grüßen,
          Horst Haselhuhn

      2. Hi!

        ChrisB vergaß zu mitzuteilen, dass es sich dabei um "HTML-Code" aber - und das treibt viele zur Verzweiflung - oft um Leerzeilen (die enthalten einen Zeilenumbruch, der natürlich gesendet wird) vor dem ersten "<?php" in der aufrufenden oder der includierten Datei handeln kann.

        Noch 'ne Ergänzung: Es können auch Whitespace-Zeichen nach einem ?> die Ursache sein. Dieses abschließende ?> kann man weglassen, wenn nach dem PHP-Code das Dateiende folgt. Dann können sich solche Whitespace-Zeichen nicht dazwischen einschmuggeln.

        Lo!