当我运行它时,它说"PHP语法检查:分析错误:语法错误,在代码的第12行出现意外的‘}’-
if(mail({$success==true};
PHP
$to = "Admin@mywebsite.com";
$subject = $_POST["Subject"];
$message = 'Hello World!';
$headers = 'From: User@Yourwebsite.com' . "'r'n" .
'Reply-To: ' . $_POST["Email_From"] . "'r'n" .
'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' . "'r'n" .
'Reply-To: ' . $_POST['Email_From'] . "'r'n" .
'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
任务就不是任务。==
严格意义上是一个比较算子;它应该是用于分配的CCD_ 6。然后,在赋值的末尾没有;
,但它出现在大括号之外。就语法而言,这是不正确的。我把整个区块改成:
$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">';
}
但现在代码工作了,考虑$mail_result
设置和$success
检查可能是有意义的,如下所示:
$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');
}