Javascript php在netlify上托管时不支持表单提交
我正在尝试使用一个简单的php表单来提交电子邮件。作为额外信息,我在netlify上托管 问题是,浏览器/控制台中没有回音,也没有收到电子邮件,而且我在任何地方都没有收到错误消息,我收到的只是来自netlify的一条消息,在我单击“提交”后说: 守则:Javascript php在netlify上托管时不支持表单提交,javascript,php,html,netlify,Javascript,Php,Html,Netlify,我正在尝试使用一个简单的php表单来提交电子邮件。作为额外信息,我在netlify上托管 问题是,浏览器/控制台中没有回音,也没有收到电子邮件,而且我在任何地方都没有收到错误消息,我收到的只是来自netlify的一条消息,在我单击“提交”后说: 守则: <form name="captureClientContactPage" data-netlify="true"id="contact-form" class="contact__form mt-5" method="p
<form name="captureClientContactPage" data-netlify="true"id="contact-form" class="contact__form mt-5" method="post" action="mail.php">
<!-- form message -->
<div class="row">
<div class="col-12">
<div class="alert alert-success contact__msg" style="display: none" role="alert">
Your message was sent successfully.
</div>
</div>
</div>
<!-- end message -->
<div class="form-row">
<div class="col-lg-12">
<div class="form-group-2 mb-4">
<textarea name="message" class="form-control" rows="6" placeholder="Your Message"></textarea>
</div>
<div class="text-center">
<button class="btn btn-main" name="submit" type="submit">Send Message</button>
</div>
</div>
</div>
</form>
您的邮件已成功发送。
发送消息
然后是php文件mail.php:
if($\u服务器[“请求\u方法”]=“发布”){
#修复:将此电子邮件替换为收件人电子邮件
$mail_to=”myemail@myemail.com";
#发送方数据
//$subject=trim($_POST[“subject”]);
$name=str_replace(数组(“\r”,“\n”)、数组(“,”)、strip_标签(trim($_POST[“name”]);
$email=filter\u var(trim($\u POST[“email”]),filter\u SANITIZE\u email);
$message=trim($_POST[“message”]);
if(空($name)或!filter_var($email,filter_VALIDATE_email)或空($subject)或空($message)){
#设置400(错误请求)响应代码并退出。
http_响应_代码(400);
echo“请填写表单并重试。”;
出口
}
#邮件内容
$content=“Name:$Name\n”;
$content.=“电子邮件:$Email\n\n”;
$content.=“消息:\n$Message\n”;
#电子邮件标题。
$headers=“From:$name”;
#发送电子邮件。
$success=mail($mail\u to,$content,$headers);
如果($成功){
#设置200(正常)响应代码。
http_响应_码(200);
echo“谢谢!您的邮件已发送。”;
}否则{
#设置500(内部服务器错误)响应代码。
http_响应_代码(500);
echo“哎呀!出了点问题,我们无法发送您的消息。”;
}
}否则{
#不是POST请求,请设置403(禁止)响应代码。
http_响应_代码(403);
echo“您的提交有问题,请重试。”;
}
?>
任何帮助都将不胜感激。非常感谢
如果您需要更多信息,请务必询问
戴尔。那里少了一个空位
data netlify=“true”id=“contact form”
netlify是否支持.php文件?我不认为我没有想到netlify不支持php。。。我可以改用JS吗?helpecho可能不会输出到浏览器的控制台,它会在响应体中输出HTML(或文本、JS代码或任何您喜欢的内容),然后在主浏览器窗口中呈现。无论如何,请不要对同一件事问多个问题。可能重复的
if ($_SERVER["REQUEST_METHOD"] == "POST") {
# FIX: Replace this email with recipient email
$mail_to = "myemail@myemail.com";
# Sender Data
// $subject = trim($_POST["subject"]);
$name = str_replace(array("\r","\n"),array(" "," ") , strip_tags(trim($_POST["name"])));
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$message = trim($_POST["message"]);
if ( empty($name) OR !filter_var($email, FILTER_VALIDATE_EMAIL) OR empty($subject) OR empty($message)) {
# Set a 400 (bad request) response code and exit.
http_response_code(400);
echo "Please complete the form and try again.";
exit;
}
# Mail Content
$content = "Name: $name\n";
$content .= "Email: $email\n\n";
$content .= "Message:\n$message\n";
# email headers.
$headers = "From: $name <$email>";
# Send the email.
$success = mail($mail_to,$content, $headers);
if ($success) {
# Set a 200 (okay) response code.
http_response_code(200);
echo "Thank You! Your message has been sent.";
} else {
# Set a 500 (internal server error) response code.
http_response_code(500);
echo "Oops! Something went wrong, we couldn't send your message.";
}
} else {
# Not a POST request, set a 403 (forbidden) response code.
http_response_code(403);
echo "There was a problem with your submission, please try again.";
}