【发布时间】:2010-07-13 04:26:18
【问题描述】:
我认为我的代码有错误,或者我的 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>
这是在 PHP 中处理它的代码...
foreach ($_POST as $var => $value) {
echo "$var = $value<br>";
}
我在我的服务器上使用 PHP 5 和 Apache 2.2。
有什么想法吗?
编辑...
我已经把它缩小到这个......
$command = $_POST['formtype'];
当我从 $_POST 中删除 @ 符号时,我收到以下错误...
注意:未定义变量:第 17 行 C:\webroot\utils\login.php 中的 formtype
如果我注释掉该行,POST 数据将毫无问题地传递到程序中。
【问题讨论】:
-
您是否关闭了您的
<form>?我没有看到结束标签。 -
隐藏字段不需要另一个表格单元格...
-
是的。我的页面中有结束的 标记。我忘记将它粘贴到 SO 帖子中。这不是表单的问题。
-
更新 - 我尝试关闭 E_Notice 错误,但没有奏效。当我尝试分配或访问 POST 变量时会出现问题。
-
您可以尝试将其更改为普通字段,并更改该字段的名称,看看是否有效。可能有助于缩小范围