PHP中的邮件表单:语法错误,意外的T_VARIABLE

时间:2011-10-10 07:45:16

标签: php email variables

我知道这是一个非常共同的问题,但是因为我没有忘记任何分号,并且我在脚本的开头声明了所有变量,我想知道为什么这个错误仍然会抛出。

代码非常简单: 编辑:

if (isset($_POST["email"])) 
{
$name=(isset($_POST["name"])) ? $_POST["name"] : ""; 
$email=(isset($_POST["email"])) ? $_POST["email"] : ""; 
$phone=(isset($_POST["phone"])) ? $_POST["phone"] : ""; 
$ext=(isset($_POST["ext"])) ? $_POST["ext"] : ""; 
$website=(isset($_POST["website"])) ? $_POST["website"] : ""; 
$body=(isset($_POST["body"])) ? $_POST["body"] : ""; 
$to = "romain.petit@infiniscale.com";
$subject = "Message $name from Infiniscale Website";
$message = "$name sent you a message using the contact form. <br/>";
$message .= "Infos : <br/>";
$message .= "Email : $email <br/>";
$message .= "Phone : $phone <br/>";
$message .= "Ext : $ext <br/>";
$message .= "Website : <a href=\"$website\">$website</a> <br/><br/>";
$message .= "Message: $body <br/>";
$from = "mailer@infiniscale.com";
$headers = "From: " .  $from;
mail($to,$subject,$message,$headers);
return "Attempted Mail Send.";
}
else
{
  return false;
}

表单已发送,“尝试发送邮件”。消息显示。但是我的邮箱里没有收到任何邮件,而我知道邮件服务器正在运行。

3 个答案:

答案 0 :(得分:3)

您需要在邮件中转义双引号,而不是:

$message = "Website : <a href="$website">$website</a> <br/><br/>";

你需要做

$message = "Website : <a href=\"$website\">$website</a> <br/><br/>";

对于包含双引号的邮件的所有部分。

答案 1 :(得分:0)

@Nexerus是正确的。也可以使用:

$message = "Website : <a href='".$website."'>$website</a> <br/><br/>";

答案 2 :(得分:0)

我认为标题必须用回车符和新行“\ r \ n”分隔。 和你的头像这样 $ header =“From:”。$ from from。 “\ r \ n”;