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

PHP POST提交表单时First Name等字段报Undefined index错误

问题根因

PHP解析HTTP提交的POST/GET参数时,会自动对参数名做特殊字符转换:参数名里包含的空格、英文句号.会被统一替换为下划线_,之后才会存入$_POST/$_GET超全局数组。
你表单里提交失败的三个字段First Name、Last Name、Phone Number的name属性都包含空格,所以实际在$_POST数组里对应的键名是First_Name、Last_Name、Phone_Number,你用带空格的原键名去取值,自然会触发未定义索引的提示。其余字段name不带空格,所以可以正常取值。

解决方案

两种方案选其一即可:

  • 推荐方案:统一修改前端表单的name属性,去掉空格,改用下划线或驼峰格式命名,前后端键名保持完全一致。
    修改后的前端表单字段示例:
    <form action="sql data.php" method="post">
    Id: <input type="text" placeholder="Enter Employee Id" name="Id" required><br>
    Email: <input type="text" placeholder="Enter Email" name="Email" required><br>
    Password: <input type="text" placeholder="Enter Password" name="Password" required><br>
    First Name: <input type="text" placeholder="Enter First Name" name="First_Name" required><br>
    Last Name: <input type="text" placeholder="Enter Last Name" name="Last_Name" required><br>
    Address: <input type="text" placeholder="Enter Full Address" name="Address" required><br>
    Phone Number: <input type="text" placeholder="Enter Phone Number" name="Phone_Number" required><br>
    Salary: <input type="text" placeholder="Enter Salary" name="Salary" required><br>
    SSN: <input type="text" placeholder="Enter SSN" name="SSN" required><br>
    <input type="submit">
    </form>
    
    后端对应修改取值的键名即可:
    Your First Name is:<?php echo $_POST["First_Name"]; ?><br>
    Your Last Name is:<?php echo $_POST["Last_Name"]; ?><br>
    Your Phone Number is:<?php echo $_POST["Phone_Number"]; ?><br>
    
  • 快速修复方案:不修改前端代码,直接把后端三个报错字段的$_POST键名里的空格替换成下划线,直接读取$_POST["First_Name"]、$_POST["Last_Name"]、$_POST["Phone_Number"]就能拿到对应值。
排查技巧

后续遇到同类POST取值报错,可以在接收文件最开头加一行var_dump($_POST);,打印完整的POST数组结构,就能直接看到所有实际传输成功的键名和值,不需要反复猜测问题点。

内容的提问来源于stack exchange,提问作者Bray-Dun Abbey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:45:45