Warning: Cannot modify header information - headers already sent by

Dieses Thema im Forum "Webentwicklung" wurde erstellt von HPLT, 10. August 2007 .

  1. 10. August 2007
    tag!

    also mein problem ist dieses Warning^^.

    also ich hab eine Datei sozusagen der header = header.inc.php iund dort in zeile 60 soll der fehler sein


    Warning: Cannot modify header information - headers already sent by (output started at /Link/header.inc.php:60) in /Link/help.inc.php on line 97

    Warning: Cannot modify header information - headers already sent by (output started at /Link/header.inc.php:60) in /Link/help.inc.php on line 103
    und die help.inc.php da sind meine funktionen drin


    Zeile 60
    Code:
     <td height="24"><div align="center"><a href="Link"><img src="Link" onMouseOver="this.src='Link';" onMouseOut="this.src='Link';" width="125" height="20" border="0"></a></div></td>
    
    egal ob cih die zeile weg mache er tritt dann wieder da auf -.- .

    und meine in der Help.inc da ist grad mein logout script
    Code:
    function logout (){
     $cook = $_Cookie['login'];
     setcookie('login','',time()-36000000); //Zeile 97
     $seid = session_id();
     $date = time();
     $sql = "UPDATE tbl SET Usersession = NULL WHERE Usersession = '$seid' LIMIT 1";
     if mysql_query($sql))
     {
     header("location: akkreditierung.php"); // Zeile 103
     }
     else 
     {
     header("location: akkreditierung.php"); 
     }
    }
    
    aso und in der akkreditierungs.php wird erst die help.inc.php einbunden und dann die header.inc.php
     
  2. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    hi!

    gib doch bitte mer von der header.inc.php bekannt! dann können wir dir bestimmt besser helfen...

    zeile 60 stimmt so in dem fall nicht ^^ auch wenn er dir das sagt. es hat was mit der session zu tun, das is schonma klar.

    evtl. solltes mal ganz an anfang der header.inc.php ein <?php ob_start(); ?> hinmachen.
    so puffert er mal alles schön, das hilft bei einigen problemen, wo es eigentlich gar kein sinn macht ^^


    PHP: ob_start - Manual


    greez
     
  3. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    setz mal im script ganz oben das hier ein:
    Code:
    ob_start();
    das folgt das dass script erst den output nach beenden des scriptes folgt.

    Edit: Obs hab oberen post nicht ganz sehen
     
  4. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    Im klartext heißt es einfach nur, du hast bereits etwas ausgegeben und willst danach zb eine session öffnen oder n cookie setzen. das geht nicht, das muss vor den ausgaben passieren.

    mfg

    @ cIntX: haben fats gleich geschrieben hatte deinen beitrag ned gesehen
     
  5. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    richtig, ob_start buffert das ganze. Du kannst dir ja mal die referenzen von ob_start anschauen da steht mehr. :bulle:
     
  6. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    naja das koische war ich hatte an der datei gar ncihts verändert und es ging alles und nu das -.-
    k komischer weise gehts nun mit dem <?php ob_start()?>

    was nützt das? weil im member bereich hab ich auch die header.inc und geiche help.inc.php und da geht alles ohne diesen schnippel^^
     
  7. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    ob_start() gibt ein echo "hallo welt"; nicht dann aus wenn es aufgerufen wird, sondern erst nachdem das script 'fertig' ist.

    sowas würde nicht gehen:
    PHP:
    <? php
    echo  123 ;
    session_start ();  //error
    ?>
    weil vor dem versenden der header (session_start()) eine ausgabe erfolgen würde, denn wenn eine ausgabe gemacht werden soll, muss der browser die headerangaben haben, sonst weiss der ja nicht was er machen soll.

    wenn du jetzt ein ob_start() drüber schreibst, macht php keine ausgabe, sondern speichert alles in einem buffer und wartet bis das script zuende geparsed wurde.
    ein versenden von headern ist somit überall möglich.

    PHP:
    <? php
    ob_start
    ();
    echo 
    123 ;
    session_start ();  // kein error
    ob_end_flush ();
    ?>
    auch kannst du den buffer nachträglich bearbeiten indem du in obstart eine function übergibst (bei template systemen immer sehr nützlich)

    PHP:
    <? php
        
    function  machwas ( $buffer ) {
            return 
    str_replace ( 'platzhalter' 'text' $buffer );
        }
        
        
    ob_start ( 'machwas' );
        echo 
    "ich bin ein platzhalter" ;
        
    ob_end_flush ();
    ?> 
     
  8. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    Komisch das mein Post weg ist? Wie dem auch sei. Guck das du bei include files kein platz nach den php tags hast

    <?php
    ...code...
    ?>
    <- platz ->

    wen z.b. in sagen wir config.php platz ist wird der platz auch ausgepsuckt nicht nur der php code.
     
  9. 10. August 2007
    AW: Warning: Cannot modify header information - headers already sent by

    jo vielen dank leute!!!

    klappt alles super und verstanden hab ich es auch^^

    bw hat hoffentlich jeder bekommen
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.