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

HTML表单提交后PHP端$_POST为空无法获取参数问题排查

HTML表单提交后PHP $_POST为空问题修复方案

核心故障原因

  • 所有表单<input>元素仅配置了id属性,未设置name属性:浏览器提交表单时仅会携带带name属性的输入框数据,PHP的$_POST也以name值作为键名读取数据,缺少该属性会导致所有表单数据无法传递到后端,这也是你切换GET/POST方法都无效的核心原因。
  • 提交按钮未设置name="submit":原有PHP逻辑中isset($_POST['submit'])的判断条件永远不成立,表单处理代码不会执行。
  • 表单action属性值不规范:localhost/test.php缺少HTTP协议头会被识别为相对路径,本地磁盘路径c:\xampp\htdocs\test.php无法被浏览器识别为请求地址,同目录下的处理文件直接写action="test.php"即可。
  • PHP代码中header()跳转前存在输出:echo输出写在header()之前会触发HTTP头已发送错误,导致跳转失效。

修正后的HTML表单代码

<form name="Driftslog" action="test.php" method="POST">
    Init: <input type="text" id="Init" name="Init" size="5" maxlength="5" autocomplete="on" required> <br/>
    LID: <input type="text" id="LID" name="LID" size="8" maxlength="8" required><br/>
    Ticket-ID: <input type="text" id="TicketID" name="TicketID" size="20" maxlength="15" required><br/>
    Kunde: <input type="text" id="Kunde" name="Kunde" size="25" maxlength="50" required><br/>
    Start tid: <input type="datetime-local" id="StartTid" name="StartTid" size="15" value="" required> <br/>
    Slut tid: <input type="datetime-local" id="SlutTid" name="SlutTid" size="15" value="" required><br/>
    Tilkald <input type="checkbox" id="Tilakd" name="Tilakd"><br/>
    Planlagt <input type="checkbox" id="Planlagt" name="Planlagt"><br/>
    Andet <input type="checkbox" id="Andet" name="Andet"><br/>
    <input type="submit" name="submit" value="Opret">
</form>

注:原datetime输入类型兼容性较差,已替换为通用的datetime-local类型,不影响数据提交逻辑

修正后的PHP处理代码

<?php 
// 测试时可放开下面的代码查看提交的POST数据
// var_dump($_POST);

if(isset($_POST['submit']))
{
  $Init = trim($_POST["Init"]);
  $LID = trim($_POST["LID"]);
  $TicketID = trim($_POST["TicketID"]);
  $Kunde = trim($_POST["Kunde"]);
  $StartTid = trim($_POST["StartTid"]);
  $SlutTid = trim($_POST["SlutTid"]);
  // 修复原代码变量名拼写错误
  $data = [ $Init, $LID, $TicketID, $Kunde, $StartTid, $SlutTid, "\n"];

  $f = fopen("db.csv","a");
  fputcsv($f, $data);
  fclose($f);

  print $TicketID;
} 

// header必须放在所有输出之前
header("Refresh:3; url=http://localhost"); 
echo "oprettet med success";
exit();
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:00