You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP+HTML联系表单故障:无法获取邮箱、主题及留言数据

问题根源:拆分的表单导致字段未提交

你的核心问题出在HTML表单的结构上——你把email、subject和comments、submit按钮分别放在了两个独立的<form>标签里!当用户点击提交按钮时,浏览器只会提交当前表单(也就是包含comments和submit的那个表单)的字段,email和subject所在的表单根本没被提交,所以PHP里的$_POST['email']和$_POST['subject']都是空值,触发了check_input函数里的错误提示。

修复步骤

1. 合并所有表单元素到同一个<form>中

把所有输入字段和提交按钮放到一个<form>标签内,确保提交时所有字段都能被发送到PHP脚本。修改后的HTML代码如下:

<div class="row">
  <div class="col-md-6 col-sm-12">
    <div class="block">
      <!-- 只保留一个form标签,包裹所有字段和提交按钮 -->
      <form action="php/contact.php" method="post">
        <div class="form-group">
          <input type="text" name="email" class="form-control" placeholder="Indirizzo email">
        </div>
        <div class="form-group">
          <input type="text" name="subject" class="form-control" placeholder="Oggetto">
        </div>
    </div>
  </div>
  <div class="col-md-6 col-sm-12">
    <div class="block">
        <div class="form-group-2">
          <textarea name="comments" rows="3" class="form-control" placeholder="Il tuo messaggio"></textarea>
        </div>
        <input class="btn btn-default" type="submit" value="Invia">
      </form> <!-- 把form闭合标签移到这里 -->
    </div>
  </div>
</div>

2. 修正PHP中mail()函数的参数顺序

你的mail()函数调用参数顺序有误,PHP的mail()函数标准语法是:

mail($to, $subject, $message, $headers);

而你现在写的是:

mail($myemail, $email, $subject, $message);

这会导致邮件的主题变成用户的邮箱地址,内容变成用户填写的主题,完全不符合预期。修正后的代码应该是:

// 先构建发件人头部信息(可选但推荐)
$headers = "From: $email\r\n";
// 正确的参数顺序:收件人、主题、邮件内容、额外头信息
mail($myemail, $subject, $message, $headers);

3. 可选:添加前端必填验证

为了提升用户体验,可以给必填字段加上required属性,避免用户空提交:

<input type="text" name="email" class="form-control" placeholder="Indirizzo email" required>
<input type="text" name="subject" class="form-control" placeholder="Oggetto" required>
<textarea name="comments" rows="3" class="form-control" placeholder="Il tuo messaggio" required></textarea>

验证修复效果

完成以上修改后,测试表单提交:

  • 填写所有字段,点击提交,应该能正常跳转到thanks.html,并且收到格式正确的邮件。
  • 如果故意留空某个字段,会触发check_input函数的错误提示,符合预期。

内容的提问来源于stack exchange,提问作者Andrewmezz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:42:23