# Warning: Cannot modify header information - headers already sent by (output started a



## Rick_64 (11. September 2009)

Hi Alle,
JETZT bin ich dem Wahnsinn nahe, seit 48 Stunden versuche ich ein "kleines" Problem zu lösen und komme nicht einen Schritt weiter. Ich möchte Alle dringen bitten mir hier weiter zu helfen

Das Problem:
Vor allem: ICH HABE ECHT KEINE AHNUNG VON PHP!  
Also: Anworten bitte *sehr *einfach halten <danke>.

Auf einer html site habe ich php eingefügt um ein Formular dirkt an meine eMail zu senden. Das gute: Es funktoniert so gar <staun>! ABER nach dem man den Button "senden" drückt, spring man auf eine "Danke-Site". UND genau hier geht was schief. Die Meldung lautet:

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web54/html/test1.php:9) in /home/www/web54/html/test1.php on line 151

Kannst Du selber sehen unter: http://www.wadi-web.net/test1.php
Einfach auf senden drücken und schon ist der Ärger da.

Hier der Code:
       </td>
        <td valign="top">
        <br />

<?php
$strEmpfaenger = 'ralfXXX@hotmail.com';
$strFrom       = '"Formmailer" <info@wadi-web.net>';
$strSubject    = 'Startup-form';
$strReturnhtml = 'http://wadi-web.net/thanks.html';
$strDelimiter  = ":\t";
if($_POST)
{
 $strMailtext = "";
 while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }
 if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }
 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
?>

<?php
 header("Location: $strReturnhtml"); ### on line 151
?>

<?php
 exit;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
    <head>
        <title>Einfacher PHP-Formmailer</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <h1>Startup-formular</h1>

Egal was ich versucher, es kommt immer wieder dieser Header zum Vorschein!

Das Internet sagt:
Leerzeilen fehler = ist es nicht
echo oder anderer header vorweg = ist es nicht
Buffer = habe ich auch Versuch, ohne erfolg

Kann mir jemand helfen?
Danke Ralf


----------



## ComFreek (11. September 2009)

Du gibst doch vor dem PHP-Tag etwas aus:


```
</td>
<td valign="top">
<br />
```

Das wird vom Server nicht interpretiert und wird einfach an den Browser weitergeleitet  -  ungefähr wie echo.


----------



## Rick_64 (11. September 2009)

Danke für die schnelle Antwort ... ABER:
Wie ich schon eingangs sage: Ich habe echt keine Ahnung ... 

Was soll ich machen? Wie sieh die Lösung aus?


----------



## ComFreek (11. September 2009)

Am besten du postest die ganze Fehlermeldung.

Denn dann sieht man, wo die Ausgabe gestartet hat (output start..)


----------



## Rick_64 (11. September 2009)

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web54/html/test1.php:9) in /home/www/web54/html/test1.php on line 150


----------



## deepthroat (11. September 2009)

Hi.

Du darfst einfach keinen Text vor dem <?php> Tag mit der Headerausgabe haben. 

Also, die Datei muss gleich mit <?php beginnen und nichts anderem. Sonst kannst du keine Header mehr versenden.

Anscheinend hast du das Formular und das Absenden in einer PHP Datei. Warum trennst du das nicht auf?  (z.B. in form.php und send.php)

Gruß


----------



## ZodiacXP (11. September 2009)

Rick_64 hat gesagt.:


> Das Problem:
> Vor allem: ICH HABE ECHT KEINE AHNUNG VON PHP!



Und von Google: http://www.php-fehlermeldungen.de/topicmenu1/index2.html


----------



## Rick_64 (11. September 2009)

SUPER, habe es hin bekommen! DANKE


----------

