PHP接收表单数据时报Undefined array key "Dezi"错误如何解决
问题原因排查与解决方案
错误根源
你在HTML中定义了两个互相独立的form表单,二者提交地址均为DzBR.php,但表单字段互不互通:
- 第一个表单仅包含
name="Dezi"的数字输入框,只有提交这个表单时,后端才会接收到Dezi字段 - 第二个表单仅包含
name="rechnen"的提交按钮,点击这个按钮提交时,不会携带第一个表单里的Dezi输入值,此时PHP如果直接读取$_POST['Dezi']就会抛出Undefined array key "Dezi"的报错
修复方案
方案1:合并表单(最推荐)
把输入框和提交按钮放在同一个表单内,提交时就会同时携带两个字段:
<form action="DzBR.php" method="post"> <input class="Dezi" name="Dezi" type="number"> <button name="rechnen" class="rechnen">Rechnen</button> </form>
方案2:PHP端提前做字段存在性校验
如果业务需要必须保留两个独立表单,可以在读取字段前先判断是否存在,避免报错:
// 兼容所有PHP版本的写法 $dezi = isset($_POST['Dezi']) ? $_POST['Dezi'] : ''; // PHP7.0及以上版本可以用更简洁的NULL合并运算符 $dezi = $_POST['Dezi'] ?? '';
内容的提问来源于stack exchange,提问作者Timothy Kardel
相关产品推荐
相关产品推荐

