Warning: Cannot modify header information

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

  • Warning: Cannot modify header information

    Hey, ich weiß nicht, was ic hverändert habe. Auf einmal funzt der Insert nicht mehr und gibt immer eine Warnugn beim Weiterleiten aus.

    Hier der Quellcode:

    EDIT:
    Code entfernt wegen Überbreite.
    wahsaga



    Die Fehlermeldung sagt folgendes:
    Warning: Cannot modify header information - headers already sent by (output started at /usr/export/www/vhosts/funnetwork/hosting/bday06/src/gallery.php:166) in /usr/export/www/vhosts/funnetwork/hosting/bday06/src/gallery.php on line 190
    Zuletzt geändert von wahsaga; 02.12.2006, 17:39.

  • #2
    Re: Warning: Cannot modify header information

    Wenn du das nächste Mal Code postest, bitte unter Beachtung unserer Regeln.

    Und zu deinem Fehler haben wir extra einen Sticky Thread hier im Forum - also bitte Augen aufmachen, dann lassen sich solche unnötigen Threads auch vermeiden.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Entschuldigt, wenn ich mit diesem Thema schonwieder nerve, doch
      nun habe ich mir auch den sticky Thread 3x durchgelesen, die Header Funktion in eine extra Datei gepackt und der Fehler tritt trotzdem auf.

      Das kuriose an der Sache ist, dass erst nach dem 7. Kommentar der Fehler auftritt.
      In meinem Gästebuch habe ich dieselbe Funktion benutz, nur dass der Header auch nach Ausgabe steht udn trotzdme funktioneirt.

      Vielleicht wird mir diesmal geholfen, nachdem ich auch mal die Regeln gelsen habe!

      Hier die extra Datei!
      PHP-Code:
      <?php
      function header_start()
      {
      header("Location: 
      [url]http://bday06.bd.funpic.de/src/gallery.php
      ?gal=[/url]"
      .$_GET['gal']."&pic=".$_GET['pic']."
      &com=yes"
      ); 
      }
      ?>

      PHP-Code:
      //Zeile 168, auf die verwiesen wird!
        
      echo '<td width="200" valign="bottom" align="right" 
      colspan="2">Erstellt: '
      .$row["Datum"].' um '.$row["Uhrzeit"].' Uhr</td>'

      Das kommt bei der Fehlermeldung raus!
      Warning: Cannot modify header information - headers already sent
      by (output started at
      /usr/export/www/vhosts/funnetwork/hosting/bday06/src/
      gallery.php:168) in /usr/export/www/vhosts/funnetwork/hosting/
      bday06/src/header.php on line 4
      Wäre das nicht so kurios, würde ic mch nicht an euch wenden. ICh würde mich nun sehr über eine antwort freuen!

      Kommentar


      • #4
        Original geschrieben von dakingno1
        Wäre das nicht so kurios, würde ic mch nicht an euch wenden.
        Was soll denn daran "kurios" sein?

        Die Warnung sagt dir doch explizit, an welcher Stelle die Ausgabe stattgefunden hat - also schau dort nach, und beseitige das Problem.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          @topicstarter
          Du machst in Zeile 168 ein echo und willst danach eine Fkt aufrufen, welche Header Daten sendet. Das geht nicht. Du könntest dein echo als String auf ne Var speichern und erst nach Anwendung der Fkt ausgeben. Alternativ könntest du auch die outputbuffer anwerfen, damit die echo noch nicht an den Browser gesendet werden.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            nach insert, aktualisierung der Seite!

            Ich habe eine write_gbook.php wo ich mithilfe einer FORM ein Insert ermögliche.
            In der Form action steht der Link zur Seite, wo die Ausgabe stattfindet (gbook.php)

            Jedoch muss ich manuell selber dei Seite aktualisieren, um den neussten Beitrag lesen zu können.
            header (Location ) habe ich verwendet, jedoch komtm der Fehler
            (Cannot modify header information).
            Und nach stundenlangem suchen nach dem Fehler und Hilfe von anderen Kollegen habe ich den Fehler nicht rausgefunden
            und der sticky Thread hilft mir auch nciht weiter.

            Gibt es denn noc handere Lösungswege um eine aktualisierung durchzuführen?

            Warum aktualisiert der nicht von slebst, wenn ich per form action auf eine andere Seite verweise?

            ICh hoffe jemand hat nützliche Tips für mich!

            Kommentar


            • #7
              Re: nach insert, aktualisierung der Seite!

              Original geschrieben von dakingno1
              Gibt es denn noc handere Lösungswege um eine aktualisierung durchzuführen?
              Ja,
              Code:
              <meta http-equiv="refresh" content="{sekunden zum redirect}; url={ziel}"
              , wobei ich das eher unsauber finde und unter Umständen auch unzuverlässig ist.
              Du kannst ja mal relevanten Code posten, dann kann dir eventuell besser geholfen werden.
              Nieder mit der Camel Case-Konvention

              Kommentar


              • #8
                Da gibts auch noch 'ne Möglichkeit per PHP Code... Allerdings weiß ich jetzt nicht 100%ig wie die geht, weil ich auch immer die <meta>-Variante verwende. Aber geht irgendwie so mit header(...).

                mfg nOe
                "I am what I am and I do what I can..."
                Meine HP -- Mein GPG-Key
                Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)

                Kommentar


                • #9
                  Cannot modify header information
                  Und nach stundenlangem suchen nach dem Fehler und Hilfe von anderen Kollegen habe ich den Fehler nicht rausgefunden
                  schade, das ist die einfachste lösung. und der fehler ist doch offensichtlich. siehe fehlermeldung.

                  gruß
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Daran ist er bereits gescheitert, hat er ja geschrieben.
                    PHP-Code:
                    header('Location: [b]absoluter[/b] URI'); 
                    Funktioniert eben nur, wenn noch keine Ausgabe stattgefunden hat.
                    Nieder mit der Camel Case-Konvention

                    Kommentar


                    • #11
                      PHP-Code:
                      //Form verweist auf eine externen Header aufruf der net funzt
                      <form name="form" method="post" action="header_gbook.php">

                       <table border="0">
                         <tr>
                           <td width="20%"><b> &Uuml;berschrift</b> </td>
                           <td colspan="2" width="350px" ><input type="text" 
                      class="inhalt" name="gbUeberschrift" id="s" value="" size="66" 
                      /></td>
                         </tr>

                        <tr valign="top">
                           <td width="20%"><b>Dein Text:&nbsp;</b></td>
                           <td colspan="3"><p><textarea name="gbeintrag" class="blub" 
                      onKeyUp="count();" onKeyDown="count();" onBlur = "count();" 
                      rows=5 cols=   "50" name="comment" ></textarea></p></td>
                        </tr>

                        <tr>
                           <td></td>
                           <td  align="left">Noch <input class="counter" name=txtCounter
                       size=3 disabled value=250> Zeichen verf&uuml;gbar</td>
                           <td align="right"><input class="buttonrahmen" 
                      name="gbeintrag_write" type="submit" id="gbeintrag_write" 
                      value="Beitrag schreiben"></td>
                        </tr>
                        </table>

                      </form>
                      <?php
                      }
                      else
                      {
                      echo 
                      'Sie müssen eingeloggt sein, um Beiträge schreiben zu dürfen';
                      }

                      if(isset(
                      $_POST['gbeintrag_write']))
                      {
                        if(
                      $_POST['gbUeberschrift'] == "" OR $_POST['gbeintrag'] == "")
                        {
                          echo
                      '<h1>Bitte alle Felder ausfüllen</h1>';
                        }
                        else
                        {
                          
                      //SQL Query zum einfügen des gbEintrags mti neuladen der Seite
                          
                      mysql_query ('INSERT INTO gbook (F_ID_user, Ueberschrift, 
                      gbooktext, Datum, Uhrzeit) VALUES 
                      ('
                      .$userid['P_id_user'].',"'.$_POST['gbUeberschrift'].'",
                      "'
                      .$_POST['gbeintrag'].'","'.$datum.'","'.$uhrzeit.'")');

                      //header is tauskommentiert, weil halt die bekannte 
                      //Fehlermeldugn auftaucht

                      //header("Location: ../src/gbook.php");
                        
                      }
                      }
                      Eigentlich sollte in der Form die gbook.php geöffnet werden und automatisch neugeladen werden, damti das insert angezeigt wird,
                      aber im moment insertet er nicht einmal in meine Datenbank *heul*

                      Kommentar


                      • #12
                        Funktioniert eben nur, wenn noch keine Ausgabe stattgefunden hat.
                        kann man doch ganz einfach abfangen

                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          //header("Location: ../src/gbook.php");
                          ganz an den anfang der datei. nimm die verarbeitung im kopf der datei vor.

                          gruß
                          peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            Original geschrieben von Griecherus
                            PHP-Code:
                            header('Location: [b]absoluter<b>Daran ist er bereits gescheitert, hat er ja geschrieben.
                            </b> URI'
                            ); 
                            Funktioniert eben nur, wenn noch keine Ausgabe stattgefunden hat. [/B]

                            PHP-Code:
                            <?php
                            header
                            ("Location: 
                            [url]http://bday06.bd.funpic.de/src/gbook.php[/url]"
                            ); 
                            ?>
                            Das ist die externe Datei um keien ausgabe vor dem header zu haben!

                            Kommentar


                            • #15
                              Original geschrieben von Kropff
                              kann man doch ganz einfach abfangen

                              peter
                              Natürlich. Ich wollte auf nichts anderes hinaus, außer dem Topicstarter zu erklären, wieso dieser Versuch gescheitert ist.
                              Und header('Location:') benötigt einen absoluten URI, sonst läuft's unter Umständen nicht überall glatt. Siehe Manual.
                              Nieder mit der Camel Case-Konvention

                              Kommentar

                              Lädt...
                              X