Php 存在隐藏输入类型时不返回POST数据
我认为我的代码中可能有错误,或者我的PHP或Apache设置不正确 当我提交一个包含隐藏字段的表单时,我的$\u POST数组中没有任何数据 当我注释掉代码中的隐藏字段时,POST数据将正确返回 HTML表单Php 存在隐藏输入类型时不返回POST数据,php,apache,post,hidden,Php,Apache,Post,Hidden,我认为我的代码中可能有错误,或者我的PHP或Apache设置不正确 当我提交一个包含隐藏字段的表单时,我的$\u POST数组中没有任何数据 当我注释掉代码中的隐藏字段时,POST数据将正确返回 HTML表单 <form action='/utils/login.php ' method='POST'> <table> <tr> <td colspan='2'> Login </
<form action='/utils/login.php ' method='POST'>
<table>
<tr>
<td colspan='2'>
Login
</td>
</tr>
<tr>
<td>
Username
</td>
<td>
<input type='text' name='userid' value='' size='12' />
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type='password' name='password' size='12' />
</td>
</tr>
<tr>
<td>
<input type='hidden' name='formtype' value='login' />
</td>
</tr>
<tr>
<td>
<input type='submit' value='Submit' />
</td>
</tr>
</table></form>
当我从我的$\帖子中删除@符号时,我得到了以下错误
注意:第17行C:\webroot\utils\login.php中的未定义变量:formtype
如果我注释掉该行,POST数据将毫无问题地传递到程序中。我建议将用于显示
$\u POST
内容的代码更改为单个调用:
print_r($_POST);
无论何时显示数组的全部内容,这都比循环w/echo好,因为它将显示数组各级的每个值
另外,正如评论中提到的,请确保在html中关闭表单。您从未关闭过
标记
现在我看到有人在评论中比我抢先一步。尽管如此,这仍然是正确的答案。您是否尝试过将隐藏的输入从表中取出,并将其放在开始表单标记之后 您还可以使用:
var_dump($_POST);
…以查看post变量
此外,如果正在动态创建任何输入,或者POST变量中可能缺少任何输入。。。您可以使用:
variable = 'default';
if(isset($_Post['variable'])) $variable = $_POST['variable'];
…动态设置可能存在或不存在的变量。请尝试:
<form action="..." method="post" enctype="application/x-www-form-urlencoded">
我更改了我的表单以使用Twig。更改后的表单未使用post发送隐藏的输入值。 如果有人有同样的问题,我通过以下方法解决了它 最初的路线是:
<input hidden name='foo[{{ loop.index }}][id]' value='{{id}}' />
我通过制作type='hidden'来出售它:
<input type='hidden' name='foo[{{ loop.index }}][id]' value='{{id}}' />
您是否关闭了
?我看不到结束标记。隐藏字段不需要其他表格单元格…是的。我的页面中有结束标记。我忘了把它贴在SO的帖子里。这不是form.Update的问题-我尝试过打开E_Notice错误,但没有成功。问题发生在我尝试分配或访问POST变量时。您可以尝试将其更改为普通字段,也可以更改字段的名称,看看是否有效。也许有助于缩小范围谢谢。我不认为这是网页不返回任何帖子数据的原因。请记住,当我完全注释掉元素时,回发数据会按预期返回。将隐藏的输入直接放在表单标记之后修复了我遇到的类似问题。。谢谢我可以看到表单标签已经关闭。有什么不对吗。我也有同样的问题,所以请阅读你的答案。
<input hidden name='foo[{{ loop.index }}][id]' value='{{id}}' />
<input type='hidden' name='foo[{{ loop.index }}][id]' value='{{id}}' />