Formularz PHP: Nie można modyfikować informacji nagłówka - nagłówki już wysłane [duplikat]
To pytanie ma już tutaj odpowiedź:
Jak naprawić błąd „Wysłano już nagłówki” w PHP 11 odpowiedziWiem, że pytanie to zostało zadane wiele razy, jednak nie mogę znaleźć rozwiązań, które są odpowiednie dla mojej sytuacji, ponieważ zajmują się głównie wordpressem.
Oto mój formularz pocztowy:
<?php
$to = "[email protected]" ;
$from = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$headers = "From: $from";
$subject = "Contact Submission From domain.com";
$fields = array();
$fields{"name"} = "name";
$fields{"title"} = "title";
$fields{"email"} = "email";
$fields{"phone"} = "phone";
$fields{"prefer_phone"} = "pref_phone";
$fields{"prefer_email"} = "pref_email";
$fields{"message"} = "message";
$fields{"referral"} = "referral";
$body = "Here is their submitted message:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n\n",$b,$_REQUEST[$a]); }
if($from == '') {print "You have not entered an email, please hit back and resubmit";}
else {
$send = mail($to, $subject, $body, $headers);
if($send)
{header( "Location: http://www.domain.com/sent.html" );}
else
{print "We encountered an error sending your mail, please notify [email protected]";}
}
?>
E-mail wysyła dobrze, ale otrzymuję tytułowy błąd przekierowania:
Ostrzeżenie: Nie można modyfikować informacji nagłówka - nagłówki już wysłane przez (wyjście uruchomione w /home/wills5/public_html/send_henry.php:1) w /home/wills5/public_html/send_email.php w linii 23
Edycja: Najwyraźniej był to sprytny biały znak przed wierszem 1, dzięki chłopaki.
Jeśli komunikat mówi, że błąd występuje w wierszu 1, to zazwyczaj prowadzi do białych znaków, tekstu> lub HTML przed otwarciem