Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在$\u POST中设置了哪些空表单字段?_Php_Html_Forms - Fatal编程技术网

Php 在$\u POST中设置了哪些空表单字段?

Php 在$\u POST中设置了哪些空表单字段?,php,html,forms,Php,Html,Forms,提交HTML表单后,我注意到一些空输入字段被发送到$\u POST数组,而其他字段则没有(它们都有name属性)。什么决定了设置什么和不设置什么 <!DOCTYPE html> <head><title>EXAMPLE TEST</title></head> <body> <form action="/test.php" method="post"> <input type="text" name="

提交HTML表单后,我注意到一些空输入字段被发送到$\u POST数组,而其他字段则没有(它们都有name属性)。什么决定了设置什么和不设置什么

<!DOCTYPE html>
<head><title>EXAMPLE TEST</title></head>
<body>

<form action="/test.php" method="post">
  <input type="text" name="text">
  <input type="radio" name="radio">
  <input type="checkbox" name="checkbox">
  <input type="date" name="date">
  <textarea name="textarea" rows="5"></textarea>
  <input type="submit" name="submit">

  <!-- etc... -->
</form>

<?php var_dump($_POST); ?>
</body>
</html>

示例测试
保持所有字段不变并提交表单,var_dump($_POST)显示:

array(3){[“text”]=>string(0)”“[“textarea”]=>string(0)”“[“submit”]=>string(6)”submit”}

我问这个问题是因为我的脚本“似乎在”向$\u POST[“radio”]添加空的收音机,而且我的脚本工作正常,但现在突然它没有出现在数组中。我没有修改脚本中的任何内容。但我的问题不是关于我的脚本,我的问题是:我如何知道在$\u POST数组中设置了哪些空字段,这是否总是有保证的?

  • 复选框和单选按钮只有在选中时才会发送

  • 文本输入将始终被发送(),但如果未填充,则将为空字符串

  • 如果单击提交按钮,将发送它们


浏览器和标准决定了这一点。它与PHP无关。

?您的radio and复选框缺少值属性。这将确定添加值的可能重复项是否不会改变任何内容。btwRadio按钮和复选框仅在包含肯定信息(即勾选或选中)时才会发送。即使文本为空,也会始终发送,当按下按钮时,也会发送按钮,即,如果您有两个按钮,则只发送被按下的一个按钮,这样您就可以知道用户按下了哪一个按钮。在使用$\u POST/$\u GET数组之前,应始终使用
isset()
array\u key\u exists()
根据情况和您自己的偏好检查字段是否存在