PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Warning: Cannot modify header information (https://www.php-resource.de/forum/php-developer-forum/78746-warning-cannot-modify-header-information.html)

dakingno1 02-12-2006 17:37

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:
Zitat:

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

wahsaga 02-12-2006 17:41

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.

dakingno1 05-12-2006 08:54

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! :rocks:

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!
Zitat:

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!

wahsaga 05-12-2006 09:39

Zitat:

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.

jahlives 05-12-2006 15:31

@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

dakingno1 06-12-2006 21:15

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!

Griecherus 06-12-2006 21:27

Re: nach insert, aktualisierung der Seite!
 
Zitat:

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.

nOe 06-12-2006 21:28

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

Kropff 06-12-2006 21:31

Zitat:

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

Griecherus 06-12-2006 21:31

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.

dakingno1 06-12-2006 21:32

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*

Kropff 06-12-2006 21:32

Zitat:

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

peter

Kropff 06-12-2006 21:34

Zitat:

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

gruß
peter

dakingno1 06-12-2006 21:34

Zitat:

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!

Griecherus 06-12-2006 21:36

Zitat:

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:12 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG