PHP邮件错误:第12行解析错误

当我运行它时,它会在第12行的代码中显示“PHP Syntax Check:Parse error:syntax error,unexpected'}'

if(mail){$ success == true};

PHP

$to = "Admin@mywebsite.com";

$subject = $_POST["Subject"];

$message = 'Hello World!';

$headers = 'From: User@Yourwebsite.com' . "rn" .
  'Reply-To: ' . $_POST["Email_From"] . "rn" .
  'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

if(mail) {$success == true};
else {$success = false};

if($success){print "<meta http-equiv="refresh" content="0;URL=thanks.html">"};
else{print "<meta http-equiv="refresh" content="0;URL=error.html">"};

你有很多的语法问题。 这里是清理后的代码:

$to = "Admin@mywebsite.com";

$subject = $_POST['Subject'];

$message = 'Hello World!';

$headers = 'From: User@Yourwebsite.com' . "rn" .
  'Reply-To: ' . $_POST['Email_From'] . "rn" .
  'X-Mailer: PHP/' . phpversion();

$mail_result = mail($to, $subject, $message, $headers);

if ($mail_result) {
  $success = true;
}
else {
  $success = false;
}

if($success){
  print '<meta http-equiv="refresh" content="0;URL=thanks.html">';
}
else{
  print '<meta http-equiv="refresh" content="0;URL=error.html">';
}

首先,你的错误显示为:

“PHP语法检查:解析错误:语法错误,意外的'}'在第12行的代码中

这是哪一行:

if(mail) {$success == true};

两个主要问题。 首先你要检查的mail不是一个定义的常量,甚至是一个变量。 这应该是像我设置$mail_result名称前面的( $ )。 然后,您的$success == true赋值不是赋值。 ==是一个比较运算符; 它应该=分配。 那么没有; 在任务结束时,但它出现在大括号之外。 语法明智,这是不正确的。 我将整块改成:

$mail_result = mail($to, $subject, $message, $headers);

if ($mail_result) {
  $success = true;
}
else {
  $success = false;
}

现在$mail_result作为一个布尔值连接到mail() 。 然后if()检查那个。 $success现在使用=设置正确的赋值,并且行结束于; 正如它应该。

然后这两行代码也充满了语法问题:

if($success){print "<meta http-equiv="refresh" content="0;URL=thanks.html">"};
else{print "<meta http-equiv="refresh" content="0;URL=error.html">"};

你有同样的问题; 作为前一个问题。 但是,字符串遏制的双引号( " )与用于<meta…标签的双引号冲突,所以在这里使用单引号( ' )作为字符串遏制&格式化。

if($success){
  print '<meta http-equiv="refresh" content="0;URL=thanks.html">';
}
else{
  print '<meta http-equiv="refresh" content="0;URL=error.html">';
}

但是现在代码正常工作,用$success检查来考虑$mail_result设置可能是有意义的,如下所示:

$mail_result = mail($to, $subject, $message, $headers);

if($mail_result){
  print '<meta http-equiv="refresh" content="0;URL=thanks.html">';
}
else{
  print '<meta http-equiv="refresh" content="0;URL=error.html">';
}

mail()返回时,分配truefalse并没有什么意义。

这就是说,你可能不需要<meta http-equiv="refresh"…取决于你的最终代码目标。 从表面上看,你可以在PHP中使用header函数来更好地实现这种效果。

$mail_result = mail($to, $subject, $message, $headers);

if($mail_result){
  header('Location: thanks.html');
}
else{
  header('Location: error.html');
}
链接地址: http://www.djcxy.com/p/69889.html

上一篇: PHP mail error: parse error on line 12

下一篇: php parse error syntax error unexpected t