PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Cannot Modify Header Information (http://www.selfphp.de/forum/showthread.php?t=14142)

Jane 01.08.2006 13:48:58

Cannot Modify Header Information
 
Hallo,
Ich habe eine kleine Homepage mit Adminbereich, Gästebuch und anderen kleinen selbstgemacht PHP Spielereien gebastelt. In meiner Entwicklungsumgebung auf meinem kleinen Homeserver mit Win2k3 Server, IIS6 hat auch alles toll funktioniert. Nun habe ich die Page in die Produktivumgebung geschaufelt, dort funktioniert auch alles bis auf eines: Das forewarding.

Beispiel Gästebuch. Die Formularangaben werden an eine PHP Datei gesendet die die Daten in die Datenbank schießt und dann wieder aufs Gästebuch zurückleitet.
Das geschieht ganz einfach mit:

"
header("Location: gbook.php");
exit;
"

Da bekomm ich aber nun den PHP-Fehler "Cannot modify Header information". Nun habe ich auch schon den ganzen vormittag gegoogelt und es wurde in zahlreichen Foren ja darauf aufmerksam gemacht das vorher keine Informationen an den Header geschickt werden dürfen. Das geschah bei der ein oder anderen Datei vielleicht, aber diese haben in der entwicklungsumgebung trotzdem funktioniert, des weiteren gibt es auch genug dateien die keine Infos an den Header senden bevor header() aufgerufen wird und der Fehler tritt trotzdem auf. Nun das beste, der Fehler tritt auch bei folgendem Code auf:
<?php header("Location: home.html");exit;?>

Es ist auch egal ob ich eine statische URL angebe, die dieses objekt angeblich verlangt. Es funktioniert auch nichts wenn ich folgendes mache:
echo "<meta http-equiv=refresh content=5; URL=http://www.google,de>";

Hier die phpinfo() falls die interessant ist:
http://janellers.de/info.php

gruß und schon mal vielen dank,
Jan

Opendix 01.08.2006 16:47:35

AW: Cannot Modify Header Information
 
du darfst header() nur benutzen wenn du vorher nichts(!!) geschrieben hast!

Also vor dem öffnenden php-tag darf nichtmal ein leerzeichen stehen!

alexwess 01.08.2006 16:51:09

AW: Cannot Modify Header Information
 
ich denke das meinte er mit...

<?php header("Location: home.html");exit;?>

alexwess 01.08.2006 16:53:08

AW: Cannot Modify Header Information
 
was steht den hinter

headers already sent by ?????


mfg

Jane 01.08.2006 18:53:12

AW: Cannot Modify Header Information
 
Ja das meinte ich damit und ja da steht "already sent by..." dahinter ;)

MatMel 01.08.2006 18:58:30

AW: Cannot Modify Header Information
 
Poste doch mal bitte die gesamte Fehlermeldung.

Wird die Datei die du bearbeitest irgenwie included, dass vorher noch was steht?

meikel (†) 02.08.2006 00:41:55

AW: Cannot Modify Header Information
 
Zitat:

Zitat von Jane
Beispiel Gästebuch. Die Formularangaben werden an eine PHP Datei gesendet die die Daten in die Datenbank schießt und dann wieder aufs Gästebuch zurückleitet.
Das geschieht ganz einfach mit:
PHP-Code:

header("Location: gbook.php");
exit; 

Da bekomm ich aber nun den PHP-Fehler "Cannot modify Header information".

1. Handbuch lesen:
http://de3.php.net/header

2. FAQ lesen:
28.13. Warning: Cannot add header information - headers already sent ...
http://www.php-faq.de/q/q-fehler-header.html

Zitat:

Nun habe ich auch schon den ganzen vormittag gegoogelt und es wurde in zahlreichen Foren ja darauf aufmerksam gemacht das vorher keine Informationen an den Header geschickt werden dürfen. Das geschah bei der ein oder anderen Datei vielleicht,
Dann korrigiere das.

Zitat:

aber diese haben in der entwicklungsumgebung trotzdem funktioniert,
Möglich, daß Deine Privatkiste die Ausgaben puffert, damit vor dem HTTP-Content der HTTP-Header rausgeblasen wird.

Zum Verständnis:
HTTP beginnt mit dem Header. Danach folgt der Content, also Dein HTML.
Die Regelung dabei ist: sobald eine Zeile gesendet wird, die kein Header ist, schaltet PHP bzw. der Apache auf Content um. Nachträgliche Headerzeilen verursachen deshalb einen Fehler.

Jane 02.08.2006 11:41:29

AW: Cannot Modify Header Information
 
Zitat:

Zitat:
Nun habe ich auch schon den ganzen vormittag gegoogelt und es wurde in zahlreichen Foren ja darauf aufmerksam gemacht das vorher keine Informationen an den Header geschickt werden dürfen. Das geschah bei der ein oder anderen Datei vielleicht,

Dann korrigiere das.
Satz zuende lesen, es geht auch bei denen nicht die keine Daten an den Header senden. Ich weiß ebenfalls was ein Header ist und bevor ich mich in nem Forum anmelde auf die gefahr hin noch mehr Spam zu bekommen Les ich auch Dokus und Handbücher ;)

Kann es sein das ich die php.ini anders konfigurieren muss? Da ich bei meiner Testumgebung viele einstellungen verändert habe...

Edit:
mit "ob_start()" und "ob_end_flush()" wird das Problem behoben, das verhindert das senden von Infos an den Header.

Opendix 02.08.2006 11:49:01

AW: Cannot Modify Header Information
 
Willst du damit sagen, dass der fehler... header already sent... auch kommt wenn du die funktion header() nicht benutzt?

hast du auch alle deine includes überprüft ob du nicht trotzdem irgendwo ein header() verwendest?

nun das mit den Buffern sehe ich nicht als Problem behoben sondern du hast eifnach das Problem umgangen...

xabbuh 02.08.2006 12:30:58

AW: Cannot Modify Header Information
 
Zitat:

Zitat von Jane
Satz zuende lesen, es geht auch bei denen nicht die keine Daten an den Header senden.

Warum schaust du nicht einfach mal an der Stelle nach, an der laut Fehlermeldung die Ausgabe geschehen soll (die exakte Fehlermeldung verschweigst du uns bis jetzt ja immer noch).
Außerdem werden nicht nur von der PHP-Funktion header() HTTP-Header gesendet. Auch setcookie() oder session_start() senden entsprechende Header.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:56:18 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.