【问题标题】:Trying to send an email with PHP from HTML form resulting in an HTTP Error 405尝试从 HTML 表单发送带有 PHP 的电子邮件,导致 HTTP 错误 405
【发布时间】:2022-01-25 14:05:12
【问题描述】:

所以我想为一个可以实际发送电子邮件的网站制作一个联系表,但最终出现了这个错误:

这是我的 html 代码:

<div class="contact-fast">
      <div class="contact-form">
        <form id="contact-form" method="POST" action="contact-form-handler.php">
          <input name="name" type="text" class="form-control" placeholder="Your Name" required> <br>
          <input name="email" type="email" class="form-control" placeholder="Your Email" required> <br>
          <textarea name="message" class="form-control" placeholder="Message" rows="8" required></textarea> <br>
          <input type="submit" class="form-control submit" value="SEND MESSAGE">

        </form>
      </div>
    </div>

这是我的 PHP 代码:

    <?php 

  $name = $_POST['name'];
  $visitor_email = $_POST['email'];
  $message = $_POST['message'];

  $email_from = 'skeremobiel@gmail.com';

  $email_subject = 'New Mail From Website';

  $email_body = "Username: $name.\n".
                "User Email: $visitor_email.\n".
                "User Message: $message.\n";

  
  $to = "said444b@gmail.com";
  $headers = "From: $email_from \r\n";
  $headers .= "Reply-To: $visitor_email \r\n";


  if ($visitor_email!=NULL) {
    mail($to,$email_subject,$email_body,$headers);
  }
  

  header("Location: http://127.0.0.1:5500/social.html");
  die()
  

?>

这是我的页面在提交表单之前和之后的样子:

我认为问题在于,当我单击提交按钮时,我会被定向到 127.0.0.1:5500/contact-form-handler.php(如您在我问题的最后一张图片中所见)。它不执行 php 文件,而只是打开它。 任何帮助将不胜感激!

【问题讨论】:

  • 检查你的服务器错误日志,看看为什么会出现 405 错误。
  • @Barmar 我如何在 linux 上做到这一点?
  • 这也取决于您使用的网络服务器。您应该能够通过阅读文档和/或简单的谷歌搜索找到您的操作系统和网络服务器组合的错误日志

标签: php html http


【解决方案1】:

很多事情都可能出错。

打开舒尔 php 错误报告。谷歌。

通过减少您的问题,尝试找出错误代码的来源。 例如,将 mail() 注释掉,看看它是否有效。

或者用一个简单的文本替换你的php代码,看看代码是否运行,如果文本出现在你的浏览器屏幕上。

或谷歌搜索错误 405。您会发现这是一个 http 错误,是您的浏览器和服务器之间的数据交换中的问题。

&lt;?php 之前是否有字符,因为如果有,服务器将无法再输出 HTTP 标头。

您的 php 文件是否位于网络服务器根目录并名为 contact-form-handler.php?

【讨论】:

  • 我刚刚试过了。没有改变任何东西。我认为问题在于,当我单击提交按钮时,我会被定向到127.0.0.1:5500/contact-form-handler.php(正如您在我的问题的最后一张图片中看到的那样)。它不执行php文件,只是打开它。
  • 你检查了error_log 文件 - apache 中的根
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多