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

Rick_64

Grünschnabel
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! :confused:
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
 
Du gibst doch vor dem PHP-Tag etwas aus:

HTML:
</td>
<td valign="top">
<br />

Das wird vom Server nicht interpretiert und wird einfach an den Browser weitergeleitet - ungefähr wie echo.
 
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?
:(
 
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

(!)
 
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ß
 
Zurück