PHP代码的最后一行显示错误

PHP代码的最后一行显示错误,php,Php,代码显示错误,有人能帮我解决这个问题吗 $body .= 'Message: ' .echo "<h2>Your Input:</h2>"; echo "Name:".$name1; echo "<br>"; echo "Email:".$email1; echo "<br>"; if(empty($contact)){echo("Contact:Didn't give anything.");} else{ echo "Contact:

代码显示错误,有人能帮我解决这个问题吗

    $body .= 'Message: ' .echo "<h2>Your Input:</h2>"; echo "Name:".$name1; echo "<br>"; echo "Email:".$email1; echo "<br>";
 if(empty($contact)){echo("Contact:Didn't give anything.");} else{ echo "Contact:".$contact; } echo "<br>"; echo "Company:".$company; echo "<br>"; if(empty($aDoor)) { echo("You didn't select anything."); } else { $N = count($aDoor); 
 echo("You selected $N item(s): "); for($i=0; $i < $N; $i++){ echo($aDoor[$i] . " / "); } } echo "<br>"; 
 echo "website:".$website; echo "<br>"; echo "Projectdetail:".$projectdetail; echo "<br>"; if(empty($budget)){ 
 echo("budget:You didn't select anything."); } else { echo "budget:".$budget; } echo "<br>"; echo "budgetother:".$input_9_other;
 . "\n\n";

解析错误:语法错误,意外的T_ECHO

您在此行中输入和回显:

$body .= 'Message: ' .echo "<h2>Your Input:</h2>";
您正在为一个变量赋值,所以请删除echo并将两个字符串放在一起附加它

  $body .= "Message: <h2>Your Input:</h2>";
试试这个:

$body .= 'Name: ' . $_POST['input_1'] . "\n\n";
$body .= 'Phone: ' . $_POST['input_11'] . "\n\n";
$body .= 'Email: ' . $_POST['input_12'] . "\n\n";
$body .= "Message: <h2>Your Input:</h2>";
问题是回音这个词。这是一个向网页输出字符串的命令,但您试图将其包含在正在生成的$body字符串中

正确的修复取决于您想要实现的目标。您可能只想在最初构建字符串时去掉回音:


您正在尝试连接一个字符串,并在同一语句的中途回显它

$body .= "<h2>Your Input:</h2>";
$body .= 'Name: ' . $_POST['input_1'] . "\n\n";
$body .= 'Phone: ' . $_POST['input_11'] . "\n\n";
$body .= 'Email: ' . $_POST['input_12'] . "\n\n";
$body .= 'Message: '; // I'm guessing you'll want another $_POST['input_?'] here
// At the end echo the whole message
echo $body;
更新问题

我不知道你是想回显文本还是把它赋给变量,所以我猜是回显

echo "<h2>Your Input:</h2>";
echo "Name: $name1";
echo "<br>Email: $email1";
echo "<br>" . (empty($contact) ? "Contact: Didn't give anything." : "Contact: $contact");
echo "<br>Company: $company";
if (empty($aDoor)) {
  echo "<br>You didn't select anything.";
} else {
  $N = count($aDoor);
  echo "<br>You selected $N item(s): ";
  for($i=0; $i < $N; $i++)
    echo $aDoor[$i] . " / ";
}
echo "<br>Website: $website";
echo "<br>Projectdetail: $projectdetail";
echo "<br>" . (empty($budget) ? "budget: You didn't select anything." : "budget: $budget");
echo "<br>budgetother: $input_9_other";

Awlad Liton的回答是正确的,我将根据您的代码添加不同的方法;示例应该解释为什么会出现语法错误

$body .= 'Name: ' . $_POST['input_1'] . "\n\n";
$body .= 'Phone: ' . $_POST['input_11'] . "\n\n";
$body .= 'Email: ' . $_POST['input_12'] . "\n\n";
$body .= 'Message: ' . "<h2>Your Input:</h2>";


echo是一种将字符串发送到输出缓冲区的语言构造。你真的只是想在$body上附加一个普通字符串。实际上,我正在尝试发送一个更大的消息,不仅是你的输入,所以是的,这行代码有效,但其他人正在导致问题您好,我已经更改了消息,您能帮我更正它吗?它对我来说太复杂了。
echo "<h2>Your Input:</h2>";
echo "Name: $name1";
echo "<br>Email: $email1";
echo "<br>" . (empty($contact) ? "Contact: Didn't give anything." : "Contact: $contact");
echo "<br>Company: $company";
if (empty($aDoor)) {
  echo "<br>You didn't select anything.";
} else {
  $N = count($aDoor);
  echo "<br>You selected $N item(s): ";
  for($i=0; $i < $N; $i++)
    echo $aDoor[$i] . " / ";
}
echo "<br>Website: $website";
echo "<br>Projectdetail: $projectdetail";
echo "<br>" . (empty($budget) ? "budget: You didn't select anything." : "budget: $budget");
echo "<br>budgetother: $input_9_other";
$body .= 'Name: ' . $_POST['input_1'] . "\n\n";
$body .= 'Phone: ' . $_POST['input_11'] . "\n\n";
$body .= 'Email: ' . $_POST['input_12'] . "\n\n";
$body .= 'Message: ' . "<h2>Your Input:</h2>";
$body .= 'Name: ' . $_POST['input_1'] . "\n\n";
$body .= 'Phone: ' . $_POST['input_11'] . "\n\n";
$body .= 'Email: ' . $_POST['input_12'] . "\n\n";
$body .= 'Message: ';
echo  "<h2>Your Input:</h2>";