PHP联系表单跳过if($_POST)进入else分支,页面报错求助
问题诊断与修复方案
核心问题
你的表单提交后$_POST为空,直接触发else分支显示“something went wrong”,根源是所有<input>标签都缺少name属性。PHP的$_POST数组完全依赖表单元素的name属性接收值,仅设置id不会将数据提交到后端。
修复步骤
修改HTML表单,给每个<input>添加与id一致的name属性即可:
<form action="assets/php/contact_form.php" method="post" class="form"> <input class="form-input" type="text" id="first-name" name="first-name" placeholder="First Name"> <input class="form-input" type="text" id="last-name" name="last-name" placeholder="Last Name"> <input class="form-input" type="email" id="email" name="email" placeholder="Email Address"> <input class="form-input" type="text" id="phone" name="phone" placeholder="Mobile Phone"> <input class="form-input" type="text" id="business-name" name="business-name" placeholder="Business Name"> <input class="form-input" type="text" id="address" name="address" placeholder="Business Address"> <input class="form-input" type="text" id="city" name="city" placeholder="City"> <input class="form-input" type="text" id="state" name="state" placeholder="State"> <input class="form-input" type="text" id="zip-code" name="zip-code" placeholder="Zip Code"> <button class="form-submit" type="submit">Submit</button> </form>
额外调试与优化建议
- 调试阶段可在PHP代码开头添加
var_dump($_POST);,直接查看提交的POST数据,确认数据是否正常传递(调试完成后删除该代码); - 建议给表单添加前端必填项验证,避免空数据提交;
- 若后续邮件发送失败,需检查服务器的邮件服务配置(
mail()函数依赖服务器邮件环境)。
内容的提问来源于stack exchange,提问作者surfturkey
相关产品推荐
相关产品推荐

