【问题标题】:Form action throws 'POST /mail.php Error (404): Not found'表单操作抛出“POST /mail.php 错误(404):未找到”
【发布时间】:2026-01-05 11:25:06
【问题描述】:

我想在 php 的帮助下通过 html 表单发送电子邮件。然而,它保持 每次声称找不到 php 文件时都会抛出相同的错误。我试过了 一切:

  1. 安装 NodeJs 并在 localhost 中运行代码。
  2. 将 name="name" name="email" 更改为其他内容。
  3. 链接到另一个 php 脚本以防万一 它有问题。
  4. 阅读有关此问题的每个 SO 页面,并从那里尝试所有解决方案。

一点运气都没有。

还是POST /mail.php Error (404): "Not found"。我在这里错过了什么?

你能让它在你的系统上运行吗?

HTML:

<form name="contactform" method="POST" action="mail.php">
   <div>
      <input type="text" name="user_name" placeholder="name" required />
      <input type="email" name="user_email" placeholder="email" required />
      <textarea type="text" name="comments" placeholder="message" required></textarea>
   </div>
      <button type="submit">SEND</button>
</form>

PHP:

<?php
$name = $_POST['user_name'];
$email = $_POST['user_email'];
$message = $_POST['comments'];
$formcontent=" From: $name \n Message: $message";
$recipient = "********@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>

【问题讨论】:

  • HTML文件和PHP文件是同一个文件夹吗?
  • @Pupil 是的,它们在同一个文件夹中
  • 我不知道为什么在这种情况下安装 NodeJS 会对你有所帮助..
  • "安装 NodeJs 并在 localhost 中运行代码" 这是否意味着您通常不通过 localhost 运行它?你确实有一个网络服务器在运行,不是吗?
  • @kerbholz 很抱歉成为这样的菜鸟。我认为值得一提。这只是我第一次尝试将 php 链接到表单,而我在几个小时前才运行 localhost,这是我生命中的第一次......

标签: php html forms


【解决方案1】:

使用这个:-

<form name="contactform" method="POST" action="mail.php">

  <input type="text" name="user_name" id="user_name" placeholder="name" required />
  <input type="email" name="user_email" id="user_email" placeholder="email" required />
  <textarea type="text" name="comments" id="comments" placeholder="message" required></textarea>

  <input type="submit" id="submit" value="SEND" />
</form>

【讨论】:

  • 请不要在没有解释如何你所展示的内容应该解决问题的情况下发布这样的“使用这个:[此处的代码]”答案。 (在这种情况下,我什至看不出这可能是什么,您的答案似乎只是猜测工作,而不是基于与实际问题相关的任何内容。)
  • 我已经在我的一台服务器上运行了上面的代码,它运行良好,邮件也收到了我的邮件。检查link,这和上面的代码是一样的,意思是我为你修改的。
  • 我已经收到你的邮件,在我的服务器中我已经把我的邮件测试了。
  • @PHPWeb 哦,太好了!这是否意味着即使我无法在我的机器上使用此表单,我的客户也可以在制作网站时让此表单正常运行?
  • @PHPWeb 谢谢!我很高兴它至少可以在您的服务器上运行。任何疯狂的猜测为什么我不能克服这个错误?