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()
返回时,分配true
或false
并没有什么意义。
这就是说,你可能不需要<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