Gri*_*are 5 php apache post hidden
我认为我的代码中有错误,或者我的PHP或Apache设置不正确.
当我提交一个带有隐藏字段的表单时,我的$ _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>
Run Code Online (Sandbox Code Playgroud)
这是在PHP中处理它的代码...
foreach ($_POST as $var => $value) {
echo "$var = $value<br>";
}
Run Code Online (Sandbox Code Playgroud)
我在我的服务器上使用PHP 5和Apache 2.2.
有任何想法吗?
编辑...
我把它缩小到这个......
$command = $_POST['formtype'];
Run Code Online (Sandbox Code Playgroud)
当我从$ _POST中删除@符号时,我收到以下错误...
注意:未定义的变量:第17行的C:\ webroot\utils\login.php中的formtype
如果我注释掉该行,POST数据将毫无问题地传递给程序.
我建议将您用来显示内容的代码更改$_POST
为单个调用:
print_r($_POST);
Run Code Online (Sandbox Code Playgroud)
每当您显示数组的全部内容时,这都比带有 echo 的循环更好,因为它将显示数组每个级别的每个值。
另外,正如评论中提到的,请确保关闭 html 中的表单。