Php 存在隐藏输入类型时不返回POST数据

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 </

我认为我的代码中可能有错误,或者我的PHP或Apache设置不正确

当我提交一个包含隐藏字段的表单时,我的$\u POST数组中没有任何数据

当我注释掉代码中的隐藏字段时,POST数据将正确返回

HTML表单

<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}}' />