【问题标题】:405 HTTP Error on submitting data on PHP / HTML form在 PHP / HTML 表单上提交数据时出现 405 HTTP 错误
【发布时间】:2022-01-11 17:38:54
【问题描述】:

我正在构建一个需要将填写的数据发送到电子邮件的表单。我正在使用 HTML 和 PHP。但不幸的是,当我按下提交按钮时出现以下错误。

405 - 不允许用于访问此页面的 HTTP 动词。 您正在查找的页面无法显示,因为尝试访问的方法(HTTP 动词)无效

PHP 代码是:

<?php

if (isset($_POST['submit'])) {
    $name = $_POST['name'];
    $visitor_email = $_POST['email'];
    $message = $_POST['message'];
    
    $email_subject = "NEW MESSAGE VIA CONTACT FORM";
    
    $email_body = "You have received a new message from the user ".$name. ".\n".$message;
    
    $to = "info@house.gr"
    $headers = "From: ".$visitor_email;
    
    mail($to, $email_subject, $email_body, $headers);
    header("Location: index.html?mailsend");
}
?>

HTML 表单是:

<form method="POST" class="contact-form" actions="contactform.php">
                                <input type="text" name="name" placeholder="Full Name">
                                <input type="text" name="mobile" placeholder="Your Mobile Phone">
                                <input type="text" name="email" placeholder="Your E-mail">
                                <textarea class="materialize-textarea" name="message" placeholder="Your Message"></textarea>
                                <input type="submit" value="Submit" class="btn">
                            </form>

更新: 对代码进行此编辑:action="contactform.php",我没有收到错误消息,但未发送电子邮件

最终解决方案: 将php文件更改为:

    $headers = "From: ";
    $headers .= $visitor_email;
    
    mail($to, $email_subject, $email_body, $headers);
    header('Location: ../');

我通过网络服务器中的日志文件发现了问题

【问题讨论】:

  • 通常,405 错误意味着您正在向不知道如何处理该请求类型的端点发送请求。确保您指向正确的端点,并且它已设置为处理 POST 请求。
  • @TheHeadRush 我如何检查这个?我遵循了许多教程,他们做了同样的事情
  • 不知道。我已经有 20 年没有使用 PHP 了。大概您有一个映射到Location: index.html?mailsend 请求的控制器方法。如果是这样,请检查它是否处理 POST 请求。如果没有,请制作一个处理程序。
  • 您在使用 IIS 吗?对特定错误消息详细信息的快速搜索显示您可能需要 disable WebDAV 或者可能只允许 POST 到该文件类型。
  • @ChrisHaas 我直接通过服务器运行,所以我不确定 WebDAV 是否​​可以调整

标签: javascript php html web


【解决方案1】:

也许您在表单的属性中编写了操作而不是操作

actions="contactform.php"

应该是

action="contactform.php"

【讨论】:

猜你喜欢
  • 2020-11-29
  • 2020-05-30
  • 1970-01-01
  • 2015-08-31
  • 2020-10-20
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
相关资源
最近更新 更多